Wieso habe ich versucht SQLite unter C# zu nutzen?
Grund war, daß der Firefox seine Bookmarks als SQLite File abgelegt (places.sqlite).
Da ich 6 Maschinen einsetze, meine Bookmarks weder Google noch FoxMark anvertrauen will, aber trotzdem gerne auf allen Maschinen die gleichen Bookmarks verwenden will ohne viel manuelles Doing, sind ein Kollege und ich auf den Gedanken gekommen hier ein kleines Hilfsprogramm zu schreiben.
Da ich gerne in C# Programmiere, habe ich mir natürlich gleich von Finisar den ADO.Net SQLite Provider besorgt.
Das SQLite Datenbankfile war schnell gefunden und kopiert, ein Beispielcode war auch schnell gefunden, aber die Sache wollte nicht.
“Finisar.SQLite.SQLiteException” wurde aufgefangen.
Message=”malformed database schema – near \”AUTOINCREMENT\”: syntax error”
Source=”SQLite.NET”
StackTrace:
bei Finisar.SQLite.sqlite3.Throw()
bei Finisar.SQLite.sqlite3.CheckOK()
bei Finisar.SQLite.sqlite3.exec(String sql)
bei Finisar.SQLite.SQLiteConnection.Open()
bei MozBookmarkSync.SQLiteDB.openDBFile() in …
InnerException:
Dieser Fehler soll angeblich nur dann auftreten, wenn man einen nicht unterstützten Create Befehl beim Erzeugen der Tabelle verwendet hat.
Mein erster Verdacht war, daß man hier beim Firefox was rumgepfuscht hat. Mea culpa… ich tat ihnen Unrecht!
Die Datei firefox-3.0rc3-source\mozilla\db\sqlite3\src\sqlite3.c basiert auf der Version 3.5.4.2 von SQLite.
Ein Test mit SQLite Expert erbrachte, daß ich das SQLite File places.sqlite vom Firefox ohne Probleme öffnen und auslesen kann.
Wo könnte der Fehler liegen?
Nach einigem Hin und Her und Suchens auf Google und verschiedenen HowTo Pages, habe ich mir dann von hier den Source des ADO.Net SQLite Providers besorgt.
Und hier kam dann der Hammer…
Der Provider wurde zuletzt in 2005 überarbeitet und unterstützt nur SQLite 3.1.1.
Thema erledigt. Manchmal soll es halt nicht gehen und bevor ich anfange jetzt selbst zu fummeln, lehne ich mich zurück, greife mir das nächste Thema und schaue mal, was der Kollege mit JAVA erreichen kann. Dafür gibt es Level4 (native JAVA) Code für SQLite…
Update
ha… es gibt doch noch eine neuere Implementation…
http://sourceforge.net/projects/sqlite-dotnet2
Mal schaun ob da das notwendige drin ist

Brückenbauer
Das Jungfrauenspiel
WeeWar