postgres/de

From Lazarus wiki
Revision as of 20:12, 13 September 2014 by Olaf (talk | contribs) (Created page with "{{postgres}}<br /> <br /> __TOC__ <br /> =Übersicht= Sie können mit Free Pascal / Lazarus auf einen PostgreSQL-Datenbank-Server zugreifen.<br /> <br /> Vorteile von PostgreS...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Deutsch (de) English (en) español (es) français (fr)



Ü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


Siehe auch