Windows Mobile 5 Development Startup – Part III – SQL Mobile
In dit artikel wil ik het hebben over het opzetten van een mobiele applicatie met behulp van SQL Mobile. Ik ga er vanuit dat u als lezer al het een en ander met databinding heeft gedaan middels ADO.NET in het “normale” .NET framework. De zaken die specifiek zijn voor SQL Mobile wil ik hier uit de doeken doen. In dit stukje borduur ik verder op het project dat we in Part I hebben gemaakt en Part II hebben uitgebreidt met een setup project.
Voordat we aan de slag kunnen dient de Microsoft SQL Server 2005 Mobile Edition Device SDK (in de volksmond nog steeds SQL CE) te worden geinstalleerd. Deze is te vinden via deze url http://www.microsoft.com/downloads/details.aspx?FamilyID=5bd8abaa-5813-4db3-b23a-24551de2ecc1&DisplayLang=en
Na installatie van bovengenoemde SDK kunnen we aan de slag.
Open de eerder opgebouwde WM5Test solution. Voeg aan de WM5Test Windows Mobile applicatie een referentie toe naar de System.Data.SqlServerCe assembly. Dit gaat als volgt:
using System.Data.SqlServerCe;
We gaan nu een database aanmaken om mee te testen. De databases voor SQL Mobile bestaan uit een single file met de extensie .sdf. Deze kunnen we met behulp van Visual Studio 2005 (VS2005) aanmaken. Dit werkt alsvolgt:
Zoals te zien hebben we nu een connectie naar ons zojuist aangemaakte database.
Vul nu de tabel met enkele records.

We gaan nu zorgen dat de Windows Mobile Applicatie gebruik gaat maken van de zojuist gecreeerde en gevuld database.
Zoals je nu kunt zien worden de gegevens uit de database netjes weergegeven in de DataGrid. Voor mobile devices werkt het aanroepen van database functionaliteit hetzelfde als binnen het gewone framework. Ik had overigens problemen met het gebruik van transacties het lijkt erop dat de functionaliteit qua functies wel aanwezig is maar niet werkt. Ik heb me hierin overigens niet heel erg verdiept. Wie hier meer over weet plaatst wat mij betreft een comment.
Om de applicatie draaiend te krijgen op een echte mobile device dient SQL Mobile runtime op de device te worden geinstalleerd. De cab file is te vinden in de directory
C:Program FilesMicrosoft Visual Studio 8SmartDevicesSDKSQL ServerMobilev3.0wce500
in mijn geval uit de subdirectory “armv4i” sqlce30.ppc.wce5.armv4i.CAB
Daarnaast kunnen ook nog de cab files sqlce30.dev.ENU.ppc.wce5.armv4i.CAB en sqlce30.repl.ppc.wce5.armv4i.CAB. Deze bevatten onder andere SQL Query Analyzer waarmee databases op de device zelf kunnen worden bekeken. Het is verder aan te raden om in dit soort applicaties Compact & Repair functionaliteit in te bouwen. Voor deze functionaliteit zijn de laatste 2 cabinet files ook noodzakelijk. De code voor een compact & repair ziet er alsvolgt uit:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
MyConnectionString = System.IO.Path. GetDirectoryName(System.Reflection. Assembly.GetExecutingAssembly(). GetName().CodeBase) + "\WM5Test.sdf"; SqlCeEngine engine = new SqlCeEngine(MyConnectionString); if (engine.Verify() == false) { engine.Repair(null, RepairOption.DeleteCorruptedRows); engine.Compact(null); } |
Kortom, het is best makkelijk om een mobiele database gestuurde applicatie op te zetten. De Tutorial is vrij summier maar is bedoeld als eerste stap die een idee geeft van de mogelijkheden.
In de volgende en laatste tutorial wil ik het hebben over het gebruik van de Remote API waarmee we via een “gewone” WinForms client kunnen communiceren met een mobile device via ActiveSync. Hierin wil ik het onder andere hebben over het kopieren van bestanden van en naar een device en het opstarten van executables en installeren van cabinet files op afstand.