Zitat:
ich möchte die
DB integrieren ohne ein separates Programm installieren zu müssen.
Genau dafür ist die Firebird embedded da
Die fbembed.dll musst du allerdings separat zu deiner EXE mitliefern. (ausser, du bindest sie in einer virtuellen Umgebung wie z.B. BoxedApp ein)
Ich würde auch zum
FB embedded raten, er ist performanter als SQLite, unglaublich robust, hat eine fast vollständige
SQL-92 Implementation und bietet im Gegensatz zur SQLite auch Stored Procedures.
Allerdings ist die
DLL um einiges größer:
SQLite 3.7
DLL: 586kB
Firebird Embedded 2.5
DLL: 3.6MB
Ein Nachteil der
FB embedded ist, dass nur ein Prozess gleichzeitig auf die Datenbank zugreifen kann. Wenn du gleichzeitigen Zugriff auf die Datenbank von mehreren lokalen Prozessen oder Programm-Instanzen brauchst, ist SQLite die bessere Wahl.
(Edit: Die
FB 2.5 bietet das zwar nun, aber in der Praxis gibts damit wohl noch Probleme)
Ein Vorteil der
FB embedded ist, dass du später, falls doch benötigt, ohne große Änderungen auch auf das große Client-/Server Modell umstellen kannst, was bei der SQLite nicht geht.