Najnowsza wersja Sql Server Compact Edition nosi numer 3.5 taki sam jak .NET Framework, co jest naprawdę miłe. Pomyślmy przecież, mógł on zostać ochrzczony numerkiem takim jak np. 3.79 i jeśli weźmiemy pod uwagę długą historię zmian, nazw tegoż produktu - moglibyśmy mieć problem ze spamiętaniem tego wszystkiego. Tą nieco sarkastyczną dygresją, odbiegłem od tematu, który chciałem poruszyć. Otóż wersja 3.1 (i wcześniejsze) nie są kompatybilne z wersją 3.5 Sql Server Compact Edition a wszelkie próby otwarcia definitywnie zakończą się fiaskiem. Aby więc wykorzystać aktualnie istniejące bazy musimy je zaktualizować. Możemy to zrobić w dwojaki sposób, po pierwsze możemy skorzystać z narzędzia update.exe, które jest dostarczane razem z instalacją SQL Server CE (przykładowo dla WM5 z procesorem ARM program domyślnie znajduje się tutaj: c:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Devices\wce500\armv4i\) lub zrobić to z poziomu kodu. Ponieważ korzystanie z aplikacji ‘konsolowych’ w Windows Mobile jest nieco utrudnione, wybrałem łatwiejszą drogę:
string path = Path.GetDirectoryName(
Assembly.GetExecutingAssembly().GetName().CodeBase)
+ “\\LangLearn.sdf”;
string conn = string.Format(“Data Source={0};”, path);
using(SqlCeEngine engine = new SqlCeEngine(conn))
{
engine.Upgrade(conn);
}
I gotowe, nasz plik sdf został zaktualizowany.