|
| Patrick's Programming Library Version 7.0.0 - Dokumentation |
Implementierung einer Postgres-Datenbank. Mehr ...
Abgeleitet von ppl7::db::Database.
Öffentliche Methoden | |
| PostgreSQL () | |
| virtual | ~PostgreSQL () |
| virtual void | cancelTransaction () |
| Letzte Transaktion abbrechen. Mehr ... | |
| virtual void | cancelTransactionComplete () |
| Transaktion vollständig abbrechen. Mehr ... | |
| virtual void | close () |
| Verbindung zu Datenbank trennen. Mehr ... | |
| virtual void | connect () |
| Connect auf eine Datenbank erstellen. Mehr ... | |
| virtual void | connect (const AssocArray ¶ms) |
| Connect auf eine Postgres-Datenbank erstellen. Mehr ... | |
| virtual void | connectCreate (const AssocArray ¶ms) |
| Connect zum Server aufbauen und Datenbank anlegen. Mehr ... | |
| ppluint64 | count (const String &table, const String &where=String()) |
| virtual void | createDatabase (const String &name) |
| Datenbank erstellen. Mehr ... | |
| virtual String | databaseType () const |
| Typ der Datenbank. Mehr ... | |
| virtual void | endTransaction () |
| Transaktion beenden. Mehr ... | |
| virtual String | escape (const String &str) const |
| String escapen. Mehr ... | |
| virtual void | exec (const String &query) |
| SQL-Query ohne Ergebnis ausführen. Mehr ... | |
| AssocArray | execArray (const String &query) |
| SQL-Query ausführen und ersten Datensatz als Array zurückgeben. Mehr ... | |
| void | execArray (AssocArray &result, const String &query) |
| SQL-Query ausführen und ersten Datensatz in Array speichern. Mehr ... | |
| AssocArray | execArrayAll (const String &query) |
| SQL-Query ausführen und alle Datensätze in Array speichern. Mehr ... | |
| void | execArrayAll (AssocArray &result, const String &query) |
| SQL-Query ausführen und alle Datensätze in Array speichern. Mehr ... | |
| AssocArray | execArrayAllf (const char *query,...) |
| SQL-Query bauen, ausführen und alle Datensätze in Array speichern. Mehr ... | |
| void | execArrayAllf (AssocArray &result, const char *query,...) |
| SQL-Query bauen, ausführen und alle Datensätze in Array speichern. Mehr ... | |
| AssocArray | execArrayf (const char *query,...) |
| SQL-Query bauen, ausführen und ersten Datensatz als Array zurückgeben. Mehr ... | |
| void | execArrayf (AssocArray &result, const char *query,...) |
| SQL-Query bauen, ausführen und ersten Datensatz in Array speichern. Mehr ... | |
| void | execf (const char *query,...) |
| Ergebnislosen SQL-Query anhand eines Formatierungsstrings bauen und ausführen. Mehr ... | |
| virtual ppluint64 | getAffectedRows () |
| Betroffene Zeilen. Mehr ... | |
| Logger * | getLogger () |
| Pointer auf den konfigurierten Logger zurückgeben. Mehr ... | |
| virtual String | getQuoted (const String &value, const String &type=String()) const |
| Wert Datenbank-konform quoten. Mehr ... | |
| virtual bool | ping () |
| Erreichbarkeit der Datenbank prüfen. Mehr ... | |
| virtual ResultSet * | query (const String &query) |
| SQL-Query mit Ergebnis ausführen. Mehr ... | |
| ResultSet * | queryf (const char *query,...) |
| SQL-Query mit Ergebnis ausführen. Mehr ... | |
| virtual void | reconnect () |
| Verlorene Datenbank-Verbindung wieder herstellen. Mehr ... | |
| void | removeLogger () |
| Querylog deaktivieren. Mehr ... | |
| virtual void | selectDB (const String &databasename) |
| Aktive Datenbank auswählen. Mehr ... | |
| void | setLogger (Logger &logger) |
| Querylog aktivieren. Mehr ... | |
| void | setParam (const String &name, const String &value) |
| Parameter für den Connect setzen. Mehr ... | |
| void | setParam (const String &name, int value) |
| Parameter für den Connect setzen. Mehr ... | |
| void | setParam (const AssocArray ¶ms) |
| Parameter für den Connect setzen. Mehr ... | |
| virtual void | startTransaction () |
| Transaktion starten. Mehr ... | |
Geschützte Methoden | |
| void | clearLastUse () |
| Timestamps auf 0 setzen. Mehr ... | |
| void | logQuery (const String &query, float duration) |
| Interne Funktion zum Loggen von Queries. Mehr ... | |
| void | updateLastPing () |
| Uhrzeit der letzten Datenbank-Kommunikation aktualisieren. Mehr ... | |
| void | updateLastUse () |
| Uhrzeit der letzten Datenbank-Verwendung aktualisieren. Mehr ... | |
Private Methoden | |
| void * | pgsqlQuery (const String &query) |
| Query ausführen. Mehr ... | |
Private Attribute | |
| ppluint64 | affectedrows |
| AssocArray | condata |
| void * | conn |
| int | transactiondepth |
| ppl7::db::PostgreSQL::PostgreSQL | ( | ) |
|
virtual |
|
virtual |
Erneute Implementation von ppl7::db::Database.
|
virtual |
Erneute Implementation von ppl7::db::Database.
|
protectedinherited |
|
virtual |
Erneute Implementation von ppl7::db::Database.
|
virtual |
Erneute Implementation von ppl7::db::Database.
|
virtual |
params entnommen werden.Die für den Connect erforderlichen oder optionalen Parameter hängen von der jeweiligen Datenbank ab und sind in der jeweiligen Dokumentation zu finden. Es gibt jedoch eine Reihe von Parametern, die bei allen Datenbanken identisch sind:
| params | Ein Assoziatives Array mit den für den Connect erforderlichen Parameter. |
| OutOfMemoryException | |
| ConnectionFailedException |
Erneute Implementation von ppl7::db::Database.
|
virtual |
params entnommen. Diese Parameter sind abhängig vom Datenbank-Typ, es gibt jedoch eine Reihe von Parametern, die bei allen Datenbanken identisch sind:| params | Ein Assoziatives Array mit den für den Connect erforderlichen Parameter. |
| diverse |
Erneute Implementation von ppl7::db::Database.
|
inherited |
|
virtual |
name erstellt. Dazu muss jedoch vorher bereits eine Verbindung zu einem Server hergestellt worden sein (siehe Database::Connect) und der Datenbank-User muss die notwendigen Rechte zum Anlegen einer Datenbank besitzen.| [in] | name | Name der anzulegenden Datenbank |
Erneute Implementation von ppl7::db::Database.
|
virtual |
Erneute Implementation von ppl7::db::Database.
|
virtual |
Erneute Implementation von ppl7::db::Database.
str Datenbank-konform escaped. Der escapete String str kann anschließend gefahrlos in SQL-Statements innerhalb von Anführungszeichen oder Hochkommata verwendet werden.| [in,out] | str | Der zu escapende String |
Erneute Implementation von ppl7::db::Database.
|
virtual |
| [in] | query | Die gewünschte SQL-Abfrage |
Erneute Implementation von ppl7::db::Database.
|
inherited |
query ausgeführt und die erste Zeile der Ergebnisdaten als Assoziatives Array zurückgegeben. Die Funktion bietet sich daher für Selects an, die genau einen Datensatz zurückliefern. Liefert ein Select mehrere Datensätze zurück, kann stattdessen die Funktion Database::ExecArrayAll verwendet werden. | [in] | query | Der Select-Befehl |
|
inherited |
query ausgeführt und die erste Zeile der Ergebnisdaten im Assoziativen Array result gespeichert. Die Funktion bietet sich daher für Selects an, die genau einen Datensatz zurückliefern. Liefert ein Select mehrere Datensätze zurück, kann stattdessen die Funktion Database::ExecArrayAll verwendet werden.| [out] | result | Ein Assoziatives Array, in dem das Ergebnis gespeichert wird. Der ursprüngliche Inhalt des Arrays wird durch Aufruf dieser Funktion gelöscht. Falls der SQL-Befehl kein Ergebnis geliefert hat, bleibt das Array leer. |
| [in] | query | Der Select-Befehl |
|
inherited |
query ausgeführt und alle Zeilen des Ergebnisses als Assoziatives Array zurückgegeben. Die Funktion bietet sich daher für Selects an, die mehrere Datensätze zurückliefern. Liefert ein Select nur einen einzigen Datensätze zurück oder wird nur der erste Datensatz benötigt, kann stattdessen die Funktion Database::ExecArray verwendet werden. | [in] | query | Der Select-Befehl |
|
inherited |
query ausgeführt und alle Zeilen des Ergebnisses im Assoziativen Array result gespeichert. Die Funktion bietet sich daher für Selects an, die mehrere Datensätze zurückliefern. Liefert ein Select nur einen einzigen Datensätze zurück oder wird nur der erste Datensatz benötigt, kann stattdessen die Funktion Database::ExecArray verwendet werden.| [out] | result | Ein Assoziatives Array, in dem das Ergebnis gespeichert wird. Der ursprüngliche Inhalt des Arrays wird durch Aufruf dieser Funktion gelöscht. Falls der SQL-Befehl kein Ergebnis geliefert hat, bleibt das Array leer. Das Array besteht dabei aus zwei Ebenen. Die erste Ebene ist durchnummeriert, jeder Datensatz erhält also eine Nummer. Auf der zweiten Ebene befinden sich dann die Key-Value-Paare des jeweiligen Datensatzes. |
| [in] | query | Der Select-Befehl |
|
inherited |
query gebaut, ausgeführt und alle Zeilen des Ergebnisses als Assoziatives Array zurückgegeben. Die Funktion bietet sich daher für Selects an, die mehrere Datensätze zurückliefern. Liefert ein Select nur einen einzigen Datensätze zurück oder wird nur der erste Datensatz benötigt, kann stattdessen die Funktion Database::ExecArrayf verwendet werden. | [in] | query | Der Select-Befehl |
| [in] | ... | Optionale Parameter für den Formatierungsstring |
|
inherited |
query gebaut, ausgeführt und alle Zeilen des Ergebnisses im Assoziativen Array result gespeichert. Die Funktion bietet sich daher für Selects an, die mehrere Datensätze zurückliefern. Liefert ein Select nur einen einzigen Datensätze zurück oder wird nur der erste Datensatz benötigt, kann stattdessen die Funktion Database::ExecArray verwendet werden.| [out] | result | Ein Assoziatives Array, in dem das Ergebnis gespeichert wird. Der ursprüngliche Inhalt des Arrays wird durch Aufruf dieser Funktion gelöscht. Falls der SQL-Befehl kein Ergebnis geliefert hat, bleibt das Array leer. Das Array besteht dabei aus zwei Ebenen. Die erste Ebene ist durchnummeriert, jeder Datensatz erhält also eine Nummer. Auf der zweiten Ebene befinden sich dann die Key-Value-Paare des jeweiligen Datensatzes. |
| [in] | query | Der Select-Befehl |
| [in] | ... | Optionale Parameter für den Formatierungsstring |
|
inherited |
query gebaut, ausgeführt und die erste Zeile der Ergebnisdaten als Assoziatives Array zurückgegeben. Die Funktion bietet sich daher für Selects an, die genau einen Datensatz zurückliefern. Liefert ein Select mehrere Datensätze zurück, kann stattdessen die Funktion Database::ExecArrayAll verwendet werden. | [in] | query | Formatierungsstring für den SQL-Query |
| [in] | ... | Optionale Parameter für den Formatierungsstring |
|
inherited |
query gebaut, ausgeführt und die erste Zeile der Ergebnisdaten im Assoziativen Array result gespeichert. Die Funktion bietet sich daher für Selects an, die genau einen Datensatz zurückliefern. Liefert ein Select mehrere Datensätze zurück, kann stattdessen die Funktion Database::ExecArrayAll verwendet werden.| [out] | result | Ein Assoziatives Array, in dem das Ergebnis gespeichert wird. Der ursprüngliche Inhalt des Arrays wird durch Aufruf dieser Funktion gelöscht. Falls der SQL-Befehl kein Ergebnis geliefert hat, bleibt das Array leer. |
| [in] | query | Formatierungsstring für den SQL-Query |
| [in] | ... | Optionale Parameter für den Formatierungsstring |
|
inherited |
query und eine variable Anzahl von Parametern, die in den Formatierungsstring eingesetzt werden. | [in] | query | Formatierungsstring für den SQL-Befehl |
| [in] | ... | Optionale Parameter, die in den Formatierungsstring eingesetzt werden. |
| QueryFailedException | und andere |
|
virtual |
Erneute Implementation von ppl7::db::Database.
|
inherited |
|
virtual |
value Datenbank-konform abhängig vom Datentyp type. Der Rückgabewert enthält je nach Datentyp bereits Hochkommata oder Anführungszeichen und kann somit ohne weitere Quotes in einen Query eingesetzt werden.| value | Zu quotender String |
| type | Datentyp. Wird nichts angegeben, wird der Wert value als String interpretiert. |
Erneute Implementation von ppl7::db::Database.
|
protectedinherited |
| [in] | query | Der durchgeführte Query |
| [in] | duration | Laufzeit des Queries in Sekunden. |
|
private |
| [in] | query | String mit dem abzusetzenden Query |
| QueryFailedException |
|
virtual |
true zurück, wenn die Datenbankverbindung noch besteht. Ist dies nicht der Fall, wird false zurückgegeben. Es kann dann mit der Funktion Database::reconnect versucht werden, die Verbindung wieder herzustellen. Erneute Implementation von ppl7::db::Database.
| [in] | query | Die gewünschte SQL-Abfrage |
Erneute Implementation von ppl7::db::Database.
|
inherited |
query und eine variable Anzahl von Parametern, die in den Formatierungsstring eingesetzt werden.| [in] | query | Formatierungsstring für den SQL-Befehl |
| [in] | ... | Optionale Parameter, die in den Formatierungsstring eingesetzt werden. |
|
virtual |
Erneute Implementation von ppl7::db::Database.
|
inherited |
|
virtual |
| [in] | databasename | Name der gewünschten Datenbank |
Erneute Implementation von ppl7::db::Database.
|
inherited |
| [in] | log | Referenz auf eine Instanz der Klasse Logger. |
| [in] | name | Name des Parameters |
| [in] | value | Wert des Parameters als String |
|
inherited |
| [in] | name | Name des Parameters |
| [in] | value | Wert des Parameters als Integer |
|
inherited |
| [in] | params | Assoziatives Array mit den Connect-Parametern |
|
virtual |
Mit diesem Befehl läßt sich eine Transaktion auf der Datenbank starten. Mit dem Befehl Database::EndTransaction wird sie abgeschlossen und mit Database::CancelTransaction abgebrochen.
Ab Version 6.4.3 der PPL-Library kann man Transaktionen verschachteln, in dem man Database::StartTransaction mehrfach aufruft. Mit Database::EndTransaction wird dann nur die innerste Transaktionsklammer abgeschlossen, mit Database::CancelTransaction entsprechend nur die innerste Transaktionsklammer zurückgerollt. Mit Database::CancelTransactionComplete läßt sich die komplette Transaktion bis zur äußersten Klammer zurückrollen. Bei der Verschachtelung von Transaktionen muss man darauf achten, dass immer eine gleiche Anzahl von Database::EndTransaction wie Database::StartTransaction geben muss, da sonst die Transaktion nicht vollständig geschlossen wird und es zu Datenbank Blockaden kommen kann.
Erneute Implementation von ppl7::db::Database.
|
protectedinherited |
|
protectedinherited |
|
private |
|
private |
|
private |
|
private |