SQL Server CE 3.5 Datenbank komprimieren
Gerade hatte ich einige Probleme eine SQL-Server CE Datenbank auf einem Windows Mobile Gerät zu komprimieren (durch SQLCeEngine.Shrink()), da dort die Meldung kam, dass angeblich eine Komponente fehlte. Das Interessante dabei war, dass das ganze in dem Emulator wunderbar funktionierte.
Letztendlich habe ich herausgefunden, dass es daran liegt, dass man die Replikations-Komponente zum Komprimieren braucht. Interessanterweise wird diese im Emulator beim Debuggen direkt mit installiert, wohingegen diese auf dem Gerät natürlich nicht standardmäßig bei ist.
Um diese zu installieren kann man die “sqlce.repl.wce5.armv4i.cab” im folgenden Verzeichnis benutzen.
C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Devices\ wce500\armv4i
Anschließend kann mit diesen Zeilen die Datenbank komprimiert werden:
1: engine = new SqlCeEngine("ConnectionString");
2: engine.Shrink();
Eine Sache auf die man dabei achten sollte ist, dass es Probleme geben kann, wenn die Datenbank-Datei in einem mit Activesync synchronisierten Verzeichnis liegt – dann kann es sein, dass die Datei durch ActiveSync gesperrt ist. Die Lösung für dieses Problem kommt im nächsten Post


