PQclass
Alaska Xbase++ mit PostgreSQL verwenden
PQclass ermöglicht mit einem PostgreSQL Server zu kommunizieren.
Die Anbindung basiert auf der C-API von PostgreSQL.
Alle Tabellen werden als Tabellenobjekte abgebildet und sind daher mit XClass++
vollständig kompatibel.
Die Schnittstelle ist nicht auf eine bestimmte Version von PostgreSQL beschränkt. Es müssen
nur die passenden Client DLLs geladen werden können:
libpq.dll
libintl.dll
Auch müssen die verwendeten Tabellen nicht mit dem Upsize Tool von Alaska modifiziert
werden.
PQclass besteht im wesentlichen aus 3 Klassen:
dsPQconnection
Diese Klasse dient zur Verwaltung der Verbindung mit dem PostgreSQL Server.
Hierüber erfolgt die Anmeldung, Steuerung der Transaktionen und andere globale
Einstellungen
dsPQselect
Diese Klasse erstellt eine SQL Abfrage und arbeitet mit den Daten, welche von der
PostgreSQL Schnittstelle auf dem Server zur Verfügung gestellt werden. Eine
Umsortierung kann nur durch eine neue Abfrage mit einer <order by> Anweisung
erfolgen.
dsPQdataset
Diese Klasse kopiert die SQL Abfrage in den lokalen Speicher und gibt die Abfrage
und Speicher auf dem PostgreSQL Server sofort wieder frei.
Es können jetzt beliebig viele Indices mit ordcreate und Suchen mit seek in diesen
logischen Indices erfolgen.
Die Dauer des Kopiervorgangs hängt von den technischen Spezifikationen ab und der
1. Zugriff dauert länger als bei dsPQselect, ist dann aber im weiteren Gebrauch
deutlich schneller und flexibler.
Updates können nur erfolgen, wenn die Tabelle einen Primarykey enthält.
Nach einem Update, Insert oder Delete wird die SQL Ergebnismenge erneut abgefragt, um die
Datenkopie wieder zu aktualisieren.
PQclass ist ab Visual Xbase++ 2 einsetzbar.
PostgreSQL
Alle Informationen und Downloads dazu finden sich auf der Seite: www.postgresql.org
Es sollte in jedem Fall auch die Dokumentation von PostgreSQL gelesen werden.
Wichtig: PostgreSQL ist casesensitiv, Tabellen und Feldnamen. Es wird empfohlen, alles in
Kleinbuchstaben zu definieren.
PostgreSQL Abfragen sind immer eine Kopie der Daten zum Zeitpunkt der Erstellung.
Änderungen, die danach durch andere Benutzer erfolgen, werden nicht in dieser Kopie
wiedergegeben. Dieses Verhalten ist anders als bei DBF Dateien, die solche Änderungen
"live" abbilden können.