Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Support FAQs Datenbanken Relationale Datenbanken und Zope Wie greife ich aus Zope auf meine Datenbank (Postgres, mySQL, ODBC Anbindung) zu?
Eine Ebene höher

Frage

Wie greife ich aus Zope auf meine Datenbank (Postgres, mySQL, ODBC Anbindung) zu?

Antwort

Für den Zugriff auf Postgres oder mySQL aus Zope heraus benötigt man jeweils zwei Dinge:
  • die entsprechende Python Datenbank API
  • das passende Datenbank Adapter Produkt für Zope.

Postgres

Wer noch keine lokale Postgres installiert hat, kann dies unter Debian mit apt-get install postgres nachholen (default encoding ist LATIN1). Danach sollte auf dem System ein postmaster Prozess laufen. Wer auf eine Postgres zugreifen möchte, die auf einem anderen Server installiert ist, braucht natürlich keine lokale Datenbank und kann diesen Schritt überspringen.

Als nächstes installieren wir die Python Postgres API:

Danach holen uns von der zope.org das ZPoPyDA Produkt, um Zope an eine Postgres Datenbank anbinden zu können:

Wir packen es mit tar xvzf ZPoPyDA-2.x.x.tar.gz direkt in $ZOPEHOME aus. Im Product Verzeichnis sollte sich nun unter $ZOPEHOME/lib/python/Products/ der Ordner ZPoPyDA befinden. Nach einem Neustart von Zope sollte sich im ZMI unter /Control_Panel/Products das Produkt ZPoPyDA befinden.

Für Postgres steht auch der PsycoPG Datenbankadapter zur Verfügung. Dieser ist eindeutig besser als PoPy und sollte deshalb verwendet werden.

mySQL

Alternativ kann statt der Postgres natürlich auch eine mySQL Datenbank angebunden werden. Ein Zope mySQL Datenbank Adapter befindet sich im Debian Paket python2.1-mysqldb oder auf den Zope.org Memberseiten von Andy Dustman. Es lohnt sich auch ein Blick auf die Projektpage auf Sourceforge.

Das entsprechend benötigte Zope Produkt kann unter herunter geladen und analog zum Postgres-Produkt installiert werden.

siehe auch:

ODBC

Zur Anbindung von Datenbank über die ODBC Schnittstelle eignet sich mxODBC von Egenix.com (Marc-André Lemburg). mxODBC läuft sowohl unter Windows als auch unter Linux und Solaris. Diese Software ist nicht freiverfügbar sondern muß lizensiert werden.

Datenbankverbindung

Um nun eine Verbindung zu einer Postgres Datenbank zu öffen, muss noch ein ZPoPy DataBase Adapter bzw. ein ZMySQL Database Adapter Objekt angelegt werden. Wichtig ist hier, das die Angaben im Database Connection String mit den Rechten und Usern der Postgres Datenbank übereinstimmen. Steht die Datenbankverbindung, kann man mittels Z SQL Methods SQL Befehle über den angelegten Adapter an die Postgres absetzen. Die angelegte Z SQL Methode kann nun aus jedem beliebigen Zope Object (DTML Document, DTML Method ...) verwendet werden.

Damit sollte es nun grundsätzlich möglich sein, aus Zope auf externe Datenbanken zuzugreifen. Weitere Hinweise zur Datenbankprogrammierung mit Zope finden sich im Zope Buch auf den DZUG Seiten.

siehe auch:
Anregungen zu dieser FAQ bitte an mschopen at dzug org

Letzte Änderung: 30.04.2006 • Autor: ajung