Mit diesem Programm
Code:
#include <stdio.h>
#include "/usr/include/pgsql/libpq-fe.h"
int
main (int argc, char **argv)
{
PGconn *dbhandle;
PGresult *result;
char abfrage[1024];
/* Verbinden zur Datenbank */
dbhandle = PQconnectdb ("dbname=stock1 user=pg");
if (PQstatus (dbhandle) == CONNECTION_BAD)
{
char *message = PQerrorMessage (dbhandle);
printf ("keine Verbindung: %s \n", message);
return (1);
}
printf ("Verbindung ok\n");
/* Abfrage zur Verbindung */
printf ("Status: %s\n", PQstatus (dbhandle));
printf ("Name der Datenbank: %s\n", PQdb (dbhandle));
printf ("Benutzer: %s\n", PQuser (dbhandle));
printf ("Passwort: %s\n", PQpass (dbhandle));
printf ("Host: %s\n", PQhost (dbhandle));
printf ("Port: %s\n", PQport (dbhandle));
printf ("TTY: %s\n", PQtty (dbhandle));
printf ("Optionen: %s\n", PQoptions (dbhandle));
snprintf (abfrage, 123, "vacuumdb --full");
result = PQexec (dbhandle, abfrage);
if (result != NULL || PQresultStatus (result) != PGRES_COMMAND_OK)
{
printf ("%s", PQerrorMessage (dbhandle));
}
PQfinish (dbhandle);
return 0;
}
bekomme ich diese Ausgabe:
Verbindung ok
Status: (null)
Name der Datenbank: stock1
Benutzer: pg
Passwort:
Host: (null)
Port: 5432
TTY:
Optionen:
ERROR: syntax error at or near "vacuumdb" at character 1
Dabei funktioniert das vacuumdb --full von der Kommandozeite.
Wieso funktioniert das nicht vom Programm aus?
Lesezeichen