postgres/de
│
Deutsch (de) │
English (en) │
español (es) │
français (fr) │
日本語 (ja) │
Übersicht
Sie können mit Free Pascal / Lazarus auf einen PostgreSQL-Datenbank-Server zugreifen.
Vorteile von PostgreSQL:
- PostgreSQL ist weit verbreitet
- PostgreSQL ist sehr stabil
- PostgreSQL hat eine komplettes Feature-Set
- PostgreSQL ist kostenfrei erhältlich
Besonderheiten bei 64 Bit Windows: Sie finden hier Hinweise für die Zusammenarbeit von bestimmten Free Pascal / Lazarus Versionen mit 64 Bit Windows Versionen.
Zeos
Die Bibliothek Zeos unterstützt neben anderen Datenbanken auch PostgreSQL.
Die Bibliothek Zeos finden Sie unter ZeosDBO
Bibliotheken für den Zugriff auf PostgreSQL
Lazarus unterstüzt PostgreSQL mit einer eigenen PostgreSQL Verbindungskomponente/Klasse.
Wenn Sie ausliesslich mit Free Pascal arbeiten, dann fügen Sie die Unit pqconnection in Ihrer uses Anweisung hinzu.
Hinweis: Wenn der Client libpq C geladen/entladen wird, dann erstellt der Client libpq C einige Speicherlecks (zumindest bis Version 9.3 von Postgres). Die SQLdb lädt den Client libpq C, wenn die erste Verbindung zur Datenbank erstellt wird und Sie entlädt den Client libpq C, wenn die letzte Verbindung zur Datenbank geschlossen wird. Das heisst, wann immer die letzte Verbindung zur Datenbank geschlossen wird, wird ein kleines Speicherleck erstellt. Um dem vorzubeugen (und um die Anwendung zu beschleunigen) können Sie den Client libpq C einmal beim starten Ihres Programmes mit dem Aufruf InitialisePostgres3 in den Speicher laden.
Die Eigenschaft CharSet erwartet einen String, der die Nummer des von Ihrem Betriebsystem verwendeten Zeichensatzes enthält.
// statt '...' seht an der Stelle natürlich die Nummer des von Ihrem Betriebsystem verwendeten Zeichensatzes.
PQConnection.CharSet := '...';
Die Komponente TPQConnection unterstützt nicht direkt die Eigenschaft Port, aber man kann den Port in der Komponente über den Parameter Params übergeben:
PQConnection.Params.Add('port=' + VariableContainingPort);
Auch andere PostgreSQL spezifische Verbindungsparameter können mit der Eigenschaft Params angegeben werden:
PQConnection.Params.Add('application_name=''yourappname''');
Beispiel
Siehe auch das Tutorial SQLdb_Tutorial1 zur Erstellung eines GUI-fähigen Datenbank-Programms, das für PostgreSQL, SQLite, Firebird und im Grunde für jedes RDBMS (Relational Database Management System = relationales Datenbankmanagementsystem) das von SQLdb unterstützt wird geschrieben ist.
Event monitoring (Ereignisüberwachung)
Wenn Sie FPC (Free Pascal Compiler) 2.6.2 oder höher und eine aktuelle Version von Lazarus haben, dann können Sie die Komponente TPQTEventMonitor zur Überwachung der Ereignisse von PostgreSQL verwenden.
PQEventMonitor ist ein einfacher wrapper für FPC.
Für Details beachten Sie bitte das FPC Beispielprogramm pqeventstest.pp.
Installation und Fehler
Wie bei allen SQLdb Komponenten, so müssen Sie auch hier die Treiber Bibliotheken (libraries) des Datenbankherstellers hinzufügen.
Zum Beispiel können Sie diese Treiber Bibliotheken unter Windows in folgenden Pfaden finden:
- Im Installationsverzeichnis der PostgreSQL Treiber Bibliotheken
- Im Suchpfad Ihres Betriebssystems (z. B. bei Windows: c:\windows\system32, usw.)
- Im Ausgabeverzeichnis Ihres Programms
- usw.
Windows 64 Bit Treiber
Wenn Sie 64 Bit Anwendungen entwickeln, dann benötigen Sie eine 64 Bit PostgreSQL Treiber Bibliothek und ein 64 Bit Betriebssystem.
Ein Windows-64-Bit-Treiber ist nicht leicht zu finden, aber er kann hier heruntergeladen werden: PostgreSQL.
Die 64 Bit Treiber Bibliothek kann in C:\Windows\system32 oder unter C:\Windows\syswow64 installiert werden.
Error: "Can not load PostgreSQL client library "libpq.dll""
Ihr Programm kann die PostgreSQL Treiber Bibliothek nicht finden.
Siehe oben, wie die PostgreSQL Treiber Bibliothek zu installieren ist.
Ein gutes Beispiel wie man Treiber Bibliotheken unter Windows für die Verbindung zur PostgreSQL Datenbank einfügt findet man unter easyDB.
Unter Linux/Unix/OSX stellen Sie bitte sicher, dass die PostgreSQL Treiber Bibliothek zum Beispiel in einem dieser Pfade zu finden ist:
- Unter Linux fügen Sie den Pfad zur Datei libpq.so in den Abschnitt libraries in der Datei /etc/fpc.cfg file hinzu. Beispiel Eintrag: -Fl/usr/local/pgsql/lib
- Manchmal ist es nötig einen symbolischen Link von einer speziellen Versinon der Bibliothek zu einem allgemeinen Bibliotheksnamen zu erstellen:
ln -s /usr/lib/pqsql.so.5 /usr/lib/pqsql.so
- Besser ist es, Sie installieren den PostgreSQL Client mit dem Paketmanager Ihrer Linux/Unix/OSX Distribution
PostgreSQL package: die low level units
So wie bei allen Datenbanken, so hängt auch der SQLDB-Code von einer unteren Programmierebene ab, nämlich von der PostgreSQL-Treiberbibliothek. Diese Treiberbibliothek besteht je nach Betriebssystem aus Bibliothekdateien mit der Erweiterung .so .dll oder .dylib. Normalerweise können Sie SQLDB Code einer höheren Programmierebene verwenden, die es Ihnen erlaubt schneller zu programmieren und einfacher Datenbanken zu wechseln usw.
Mit diesem Beispiel ist es sehr einfach, alles was Sie tun müssen, ist das kompilieren einiger Units und diese Units können Sie dann in Ihrem Programm verwenden. Sie müssen diese Units Anstelle der PostgreSQL-Client-Bibliothek (libpq) bei der Erstellung Ihres Programms angeben.
Die Haupt-Unit heisst postgres, normalerweise ist dies die einzige Unit, die Sie in Ihrem uses Abschnitt einfügen müssen.
Anforderungen
Sie benötigen mindestens Free Pascal in der Version 0.99.5. Die Header müssen mindestens von PostgreSQL Version 6.3.1 sein.
Installation
Die Postgres Unit wird mit den Free Pascal packages geliefert (/usr/share/fpcsrc/[Versionsnummer]/packages/postgres). Das Package enthält ein Verzeichnis postgres mit den Units, ein Testprogramm und eine Datei Makefile.
Wechsle in das Verzeichnis und editiere die Datei makefile. In der Datei Makefile werden die Variablen für Ihr Betriebsystem gesetzt. Sie müssen nur eine Sache in die Datei Makefile einfügen:
Das Verzeichnis, in dem sich die libpq Bibliotheken befinden. Möglicherweise sind diese im Verzeichnis /usr/local/pgsql/lib
geben Sie jetzt
make
ein. Dies sollte zum kompillieren der units und des Programms führen. Nach einer erfolgreichen Kompillation können Sie das Ergebnis mit
make install
installieren. (Denken Sie daran das Verzeichnis mit den installierten Units zu setzen.)
Jetzt können Sie das Testprogramm ausführen:
make test
Sie werden eine viele Meldungen die Ihnen Rückmeldungen und Ergebnisse auf Ihrem Bildschirm sehen. Wenn etwas schief läuft wird das Programm make Sie darüber informieren.
Siehe auch
- Lazarus DB Faq - More about database programming