postgres/de

From Free Pascal wiki
Jump to navigationJump to search

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.
sqldbcomponents.png

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.

Light bulb  Hinweis: FPC 2.6.0 (ebenso Lazarus 1.0.4 oder früher) unterstützen unter Windows 64 Bit kein PostgreSQL (es sei den, Sie Patchen und recompilieren FPC und Lazarus).

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