Archive for the ‘SQL’ Category

Kompatybilność i SQL Server Compact Edition

styczeń 10, 2008

Na blogu SQL Server Compact Team Blog pojawił się artykuł omawiający wzajemną kompatybilność poszczególnych wersji SQL Server Compact Edition. I tak np. można się dowiedzieć, że np. designer z Visual Studio 2008 będzie pracował tylko z wersją 3.5, co jest nieco zaskakujące bo po produkcie takim jak Visual Studio można by się spodziewać nieco lepszej kompatybilności wstecznej.

Detekcja wersji pliku *.sdf

grudzień 11, 2007

Nie tak dawno temu pisałem o sposobie aktualizacji bazy Microsoft SQL Compact Edition do wersji 3.5, i już wtedy zastanawiałem się, jak w sposób programowy określić wersję pliku bazy danych. Szybkie sprawdzenie namespace’ów nie dało mi niczego, co mogłoby być użyteczne. Nie mogę powiedzieć, żebym był zaskoczony, żaden zespół developerski nie jest idealny. Wpisałem sobie, więc to pytanie na moją listę ToDo i … jakoś nie miałem czasu się tym zainteresować.
Dzisiaj przeglądając poranną porcję ‘prasy’, natrafiłem na post pana João Paulo Figueiry, traktujący właśnie o wyżej wymienionym problemie. Są, więc dwa sposoby pierwszy, prosty, nieelegancki i uciążliwy - to otwieranie pliku kolejno w różnych wersjach SQL Compact Edition, jak otrzymujemy Exception to znaczy, że plik nie pasuje do aktualnie używanej wersji. Oczywiście musimy mieć zainstalowane wszystkie wersje SQL CE na naszym urządzeniu. Innym sposobem jest otworzenie pliku i odczytaniu kilku bajtów określających wersję pliku. Ciekaw jestem czy autor określił te wartości doświadczalnie, czy też zostały one podane przez Microsoft. Najważniejsze, że sposób działa, gdzie należy szukać i jakich wartości, można znaleźć z załączonym przykładzie.

Aktualizacja bazy danych

listopad 27, 2007

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.

SQL CE & Top

październik 8, 2007

Taka notka na szybko, Sql Compact Edition nie obsługuje klauzuli TOP.

LINQ a SQL Server Compact Edition

sierpień 28, 2007

Tak się zastanawiałem jak (i ew. czy) LINQ będzie współpracowało z SQL Server 2005 Compact Edition. I okazuje się, że będzie! Fakt, nieco ograniczone tu i tam ale pracować będzie. Jak poskładać wszystko do kupy, można znaleźć w tym poście: ‘LINQ with SQL Server Compact (a.k.a. DLINQ with SQL CE)‘. Teraz tylko czekać na jakąś zewnętrzną bibliotekę umożliwiającą wykorzystanie ‘LINQ to SQL Server Compact‘ na .NET Compact Framework.

TableDiff

sierpień 17, 2007

TableDiff jest narzędziem wchodzącym w skład SQL Server‘a i służy do porównywania dwóch tabel. Program może tylko pracować z serwerami bazodanowymi Microsoftu, a poza tym nie ma ograniczenia czy tabele są w tej samej bazie, czy nawet na tym samym serwerze. TableDiff umożliwia również na tworzenie skryptów *.sql które pomogą nam w ewentualnej synchronizacji danych. Teraz dodatkowo możemy ściągnąć proste GUI które wyeliminuje żmudne klepanie poleceń z linii komend. Więcej na ten temat można znaleźć tutaj.

Kolejne spotkanie SQL Server User Group

czerwiec 28, 2007

Dnia 3 lipca w godzinach 18.30 - 20.30 odbędzie się kolejne spotkanie SQL Server User Group. Tematem prezentacji jest ‘Introducing Management to Data Cubes & Data Mining‘ - co na pewno będzie interesujące bo nie mam na ten temat, żadnego pojęcia ;) . Wszyscy zainteresowani mogą się zarejestrować tutaj.