Re: Установка SQL CE на win ce 4.2
От: olefard  
Дата: 11.08.06 13:14
Оценка: +1
Вам подойдет для процессора ArmV4
Posted via RSDN NNTP Server 2.0
Установка SQL CE на win ce 4.2
От: Шкураев Сергей Россия  
Дата: 08.08.06 07:41
Оценка:
Здравствуйте,
У меня такая проблема:
Есть терминал сбора данных Symbol mc1000 — он представляет собой PocketPC2003 (процессор Intel XScale 312 MHz)
на нем установлено ядро WinCE 4.2.
Необходимо установить туда MS SQL CE. Вопрос как?
PS Скачал MS SQL CE 2.0 там нет поддержки данного типа процессоров.
Re[2]: Установка SQL CE на win ce 4.2
От: ufo7  
Дата: 23.11.06 15:48
Оценка:
Здравствуйте, 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());
            }
        }
    }
Re[3]: Установка SQL CE на win ce 4.2
От: ufo7  
Дата: 23.11.06 17:27
Оценка:
Здравствуйте, 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>>
Re[3]: Установка SQL CE на win ce 4.2
От: ufo7  
Дата: 24.11.06 12:58
Оценка:
Здравствуйте, 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>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.