Вам подойдет для процессора ArmV4
Posted via RSDN NNTP Server 2.0
Здравствуйте, olefard, Вы писали:
O> Вам подойдет для процессора ArmV4
У меня похожая проблема, нужно использовать SqlCE 2.0 на Symbol XR400 (WinCE4.2)
1. Я не могу найти версию установленного на девайсе фрэймворка (не знаю как это программно сделать, кажется есть какая-то ф-ция)
2. При попытке запустить нижеприведенный код выдает:
\> sqlCE
File was not found
System.MissingMethodException:MissingMethodException
MissingMethodException
Есть подозрение на несовместимость фрэймворка предустановленного на девайсе и требуемого SqlCE 2.0
Кстати попытки разворачавать .cab файлы приводят к зависанию telnet консоли (процесс wceload.exe)
Пробовал развернуть сетапы:
SqlCe 2.0
c:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\SQL Server\Mobile\v2.0\wce400\armv4\sqlce20.ppc.wce4.armv4.CAB
CompactFramework 1
c:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\CompactFramework\2.0\v1.0\WindowsCE\WCE400\ARMV4\NETCFv1.WCE.ARMV4.CAB
CompactFramework 2
c:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\CompactFramework\2.0\v2.0\WindowsCE\wce400\armv4\NETCFv2.ppc.armv4.cab
Кстати библиотеки SqlCe 2.0 для референсов проекта брал в c:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\SQL Server\Mobile\v2.0\
(System.Data.SqlServerCe.dll и System.Data.Common.dll)
(Проект делал из-под шаблона PPC2003 консольное приложение под 1й компакт фрэймворк)
internal class Program
{
private static void Main(string[] args)
{
try
{
if (File.Exists("\\Test.sdf"))
{
File.Delete("\\Test.sdf");
Console.WriteLine("File was deleted");
}
else
{
Console.WriteLine("File was not found");
}
string connStr = "Data Source = \\Test.sdf; Password = <password>";
SqlCeEngine engine = new SqlCeEngine(connStr);
engine.CreateDatabase();
engine.Dispose();
SqlCeConnection conn = new SqlCeConnection(connStr);
conn.Close();
conn.Open();
Console.WriteLine("SqlCe connection open...");
SqlCeCommand cmd = conn.CreateCommand();
cmd.CommandText = "CREATE TABLE myTable (col1 int, col2 ntext)";
cmd.ExecuteNonQuery();
if (File.Exists("\\Test.sdf"))
{
Console.WriteLine("File Test.sdf created");
}
else
{
Console.WriteLine("File was not created");
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
Console.WriteLine(e.Message.ToString());
Console.WriteLine(e.InnerException.ToString());
}
}
}
Здравствуйте, ufo7, Вы писали:
U>1. Я не могу найти версию установленного на девайсе фрэймворка (не знаю как это программно сделать, кажется есть какая-то ф-ция)
Эту задачу я решил:
Console.WriteLine("OS: " + Environment.OSVersion);
Console.WriteLine("CF: " + Environment.Version);
Получил:
Welcome to the Windows CE Telnet Service on XR400c42
Pocket CMD v 4.20
\> sqlce
OS:Microsoft Windows CE 4.20.0
CF1.0.4292.0
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, ufo7, Вы писали:
U>Есть подозрение на несовместимость фрэймворка предустановленного на девайсе и требуемого SqlCE 2.0
Проверил на эмуляторе с 1м фрэймворком, там та-же версия. Теперь я уверен что проблема в
кривой установке самого SqlCE Server v2
Дело в том, что прямо поставить через .cab файл — не удается. Зависает wceload.exe
Если я просто копирую в одну папку:
SqlCE.exe
System.Data.Common.dll
System.Data.SqlServerCe.dll
Всеравно проблема — остается
\temp> sqlce
OS: Microsoft Windows CE 4.20.0
CF: 1.0.4292.0
---
System.MissingMethodException:MissingMethodException
MissingMethodException
InnerException == null
---
После добавления файлов:
ssceca20.dll
sscemw20.dll
\temp> sqlce
OS: Microsoft Windows CE 4.20.0
CF: 1.0.4292.0
File Test.sdf was not found
--- Start Exception block---
System.Data.SqlServerCe.SqlCeException:SqlCeException
SqlCeException
InnerException == null
--- End Exception block---
За это время я немного доработал код SqlCE.exe:
namespace SqlCE
{
internal class Program
{
private static void Main(string[] args)
{
Console.WriteLine("\n\rOS: " + Environment.OSVersion);
Console.WriteLine("CF: " + Environment.Version);
try
{
if (File.Exists("\\Temp\\Test.sdf"))
{
File.Delete("\\Temp\\Test.sdf");
Console.WriteLine("File Test.sdf was deleted");
}
else
{
Console.WriteLine("File Test.sdf was not found");
}
string connStr = "Data Source = \\Temp\\Test.sdf; Password = <password>";
SqlCeEngine engine = new SqlCeEngine(connStr);
engine.CreateDatabase();
engine.Dispose();
SqlCeConnection conn = new SqlCeConnection(connStr);
conn.Close();
conn.Open();
Console.WriteLine("SqlCe connection open...");
SqlCeCommand cmd = conn.CreateCommand();
cmd.CommandText = "CREATE TABLE myTable (col1 int, col2 ntext)";
cmd.ExecuteNonQuery();
if (File.Exists("\\Temp\\Test.sdf"))
{
Console.WriteLine("File Test.sdf created");
}
else
{
Console.WriteLine("File Test.sdf was not created");
}
}
catch (SqlCeException err)
{
Console.WriteLine("\n\r--- Start SqlCeException block---\n\r");
Console.WriteLine();
Console.WriteLine(err.ToString());
Console.WriteLine(err.Message.ToString());
if (err.InnerException != null)
Console.WriteLine(err.InnerException.ToString());
else
{
Console.WriteLine("InnerException == null");
}
Console.WriteLine("\n\r--- End SqlCeException block---\n\r");
}
catch (Exception e)
{
Console.WriteLine("\n\r--- Start Exception block---\n\r");
Console.WriteLine();
Console.WriteLine(e.ToString());
Console.WriteLine(e.Message.ToString());
if (e.InnerException != null)
Console.WriteLine(e.InnerException.ToString());
else
{
Console.WriteLine("InnerException == null");
}
Console.WriteLine("\n\r--- End Exception block---\n\r");
}
}
}
}
Вопрос, чего ему еще не хватает!!???
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>