http://www.postgresql-support.de

SQL absetzen

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.



http://www.postgresql.at