Seite 1 von 1

Wie am besten eine "embedded" DB realisieren?

Verfasst: Dienstag 12. Dezember 2006, 07:43
von oliver1974
Hallo,

Ich hatte mal ein Java-Programm geschrieben, welches
Apache Derby als eingebettetes Datenbank-System
benutzt... Das funktionierte wirklich soweit gut.

Die Performance ist bis heute immer ausreichend gewesen,
man musste nix separat installieren ....

(war ein mit JSmooth generierter
EXE-Wrapper für windows, da war dann die Datenbank gleich mit drin
und die Tabellen wurden mittels NSIS Installer im gleichen Atemzug
wie die EXE bei der Installation raufgespielt.. recht easy für den
Anwender also)

... und man hatte eine ausreichende Menge der SQL-Syntax
zur Verfügung um komfortabel damit umgehen zu können.

Wie würde man sowas in Python realisieren? Ich hab schon gesehen,
dass es einige Bindings gibt, vor allem sticht mir natürlich
pysqlite ins Auge.

Das ist dann natürlich plattformabhängig... ob das wirlich schlimm
ist, steht auf einem anderen Blatt.

Um es kurz zusammenzufassen: Wie würdet
ihr sowas realisieren? Immer eine SQlite mitinstallieren
und dann via pysqlite darauf zugreifen? Und dann für jede
Plattform unterschiedliche Downloads? Was macht ihr
dann mit MaxOSX, da sehe ich nur eine obskure "cross-platform binary"
weiter unten auf der Download Seite, aus der ich nicht so recht
schlau werde..

Danke für eure Tipps!

Verfasst: Dienstag 12. Dezember 2006, 08:08
von jens
SQLite ist ab Python 2.5 direkt mit dabei. Also damit solltest du Platform unabhängig sein.

Verfasst: Dienstag 12. Dezember 2006, 10:23
von oliver1974
jens hat geschrieben:SQLite ist ab Python 2.5 direkt mit dabei. Also damit solltest du Platform unabhängig sein.
Upsie.... Nicht schlecht, gut, ich nutze hier noch 2.4sonstwas.

Aber letztlich dürfte es ja auf das gleiche hinauslaufen, der jeweiligen
plattformbezogenen Python-Runtime wird wohl jetzt standardmäßig SQLite mitgegeben.. das heißt, ich dürfte im groben mit 2.4 und ein dementsprechend "mitgepacktes" SQLite dasselbe erreichen, nehme ich an...

Sind denn die SQLite Erfahrungen soweit gut bei euch? Wie gesagt, Apache Derby lief für die konkrete Anwendung recht gut (ist ja jetzt beim ganz neuen Java 6 auch standardmäßig dabei, wenn auch unter anderem Namen..)

Verfasst: Dienstag 12. Dezember 2006, 12:48
von midan23
Eine kleine Zusatzinfo zu Mac OS X:

In Tiger (Mac Os X Version 10.4.x) ist SQLite beim Betriebssystem dabei
(Die verwendete Version von SQLite müsste ich erst nachschauen ...)

Verfasst: Dienstag 12. Dezember 2006, 14:03
von DatenMetzgerX
Allerdings würde ich sqlalchemy oder sqlobject einsetzen. Dann kannst du auch später die db problemlos ändern und jeder user kann auswählen was er benutzen will. Ich kämpfe mich jetzt gerade mit einer migration zur sqlachemy rum. elend.

Re: Wie am besten eine "embedded" DB realisieren?

Verfasst: Dienstag 12. Dezember 2006, 14:19
von gerold
oliver1974 hat geschrieben:vor allem sticht mir natürlich pysqlite ins Auge.
Hi oliver!

PySQLite ist eine gute Wahl!

Wenn du sqlite so importierst, dann funktioniert dein Code mit Python 2.4 genauso gut wie mit Python 2.5.

Code: Alles auswählen

try:
    # Ab Python 2.5
    import sqlite3
except ImportError:
    # Vor Python 2.5 --> pysqlite --> http://initd.org/tracker/pysqlite
    from pysqlite2 import dbapi2 as sqlite3

In beiden Fällen importierst du damit die Bindung zu "SQLite 3", also dem neueren SQLite-Standard.

- http://www.sqlite.org/
- http://www.sqlite.org/datatype3.html

mfg
Gerold
:-)

Verfasst: Dienstag 12. Dezember 2006, 14:58
von oliver1974
Oh Gott, die wertvollen Tipps fliegen nur so rein... Das muss ich erstmal hier organisieren, da brauche ich ja schon eigene Ordner für ! :D

Danke soweit!

Verfasst: Dienstag 12. Dezember 2006, 16:12
von gerold
oliver1974 hat geschrieben:die Tipps fliegen nur so rein...
Hi oliver!

In diesem Thema http://www.python-forum.de/topic-6157.html beschreibe ich unter anderem auch wie man mit SQLite arbeiten kann.

mfg
Gerold
:-)