Das PgDatabase-Objekt bietet auch die Möglichkeit, SQL Statements auszuführen. Im folgenden Listing sehen wir ein Beispiel, das zeigt, wie eine einfache Transaktion abgearbeitet werden kann:
#include <iostream.h>
#include "libpq++.h"
void myError(char *message, const char *error)
{
cerr << message << ": " << error << endl;
exit(1);
}
int main(int argc, char **argv)
{
PgDatabase data(argv[1]);
if ( data.ConnectionBad())
myError("datenbank handle ungültig", data.ErrorMessage());
if (!data.ExecCommandOk("BEGIN"))
myError("BEGIN fehlgeschlagen", data.ErrorMessage());
if (!data.ExecCommandOk("CREATE TABLE t_test (id int4)"))
myError("CREATE TABLE fehlgeschlagen", data.ErrorMessage());
if (!data.ExecCommandOk("COMMIT"))
myError("COMMIT fehlgeschlagen", data.ErrorMessage());
cout << "CREATE TABLE erfolgreich" << endl;
return 0;
}
Wir verwenden die Methode ExecCommandsOk, um SQL auszuführen, das kein Ergebnis liefert:
[hs@athlon test]$ LD_LIBRARY_PATH=/usr/local/pgsql/lib/ ./plus_02 'dbname=test host=epi' CREATE TABLE erfolgreich
Wir haben erfolgreich eine Tabelle angelegt, die wir in den nächsten Beispielen noch benötigen werden.
Alternativ zu ExecCommandsOk können wir auch die Methode Exec verwenden.