Re: C code problem
От | D. Duccini |
---|---|
Тема | Re: C code problem |
Дата | |
Msg-id | Pine.GSO.4.03.10104170905470.28457-100000@ra.bpsi.net обсуждение исходный текст |
Ответ на | C code problem (John Burski <John.Burski@911ep.com>) |
Список | pgsql-novice |
here's some code i wrote for generically dealing with postgres in C --> modify the 'connect' as you see fit -- mine was based on SUID user processing for some daemons we were using void SQLShutdown(PGconn *conn) { PQfinish(conn); } int SQLString(char *is, char *os) { char *ch=is, *ch2=os; while (*ch) { if (*ch == '\'') *ch2++ = '\''; *ch2++ = *ch++; } *ch2 = 0; return(0); } PGconn *SQLConnect(void) { PGconn *conn; char *dbName = "", *pghost = NULL, /* host name of the backend server */ *pgport = NULL, /* port of the backend server */ *pgoptions = NULL, /* special options to start up the backend server */ *pgtty = NULL; /* debugging tty for the backend server */ Debugf("SQLConnect()\n"); conn = PQsetdb(pghost, pgport, pgoptions, pgtty, dbName); if (PQstatus(conn) == CONNECTION_BAD) { printf("Connection to database '%s' failed.\n", dbName); printf("%s",PQerrorMessage(conn)); return(NULL); } return(conn); } int SQLDisconnect(PGconn *conn) { PQfinish(conn); } PGresult *SQLExecute(PGconn *conn, char *xBuf, int resultOK) { PGresult *res; printf("%s\n", xBuf); res = PQexec(conn, xBuf); if (PQresultStatus(res) != resultOK) { printf("PQresultStatus(res) : %d\n", PQresultStatus(res)); printf("! Command failed\n"); PQclear(res); return(NULL); } else return(res); } PGresult *SQLExecuteQuietly(PGconn *conn, char *xBuf, int resultOK) { PGresult *res; res = PQexec(conn, xBuf); if (PQresultStatus(res) != resultOK) { printf("PQresultStatus(res) : %d\n", PQresultStatus(res)); printf("! Command failed\n"); PQclear(res); return(NULL); } else return(res); } -duck On Tue, 17 Apr 2001, John Burski wrote: > I'm running PostgreSQL 7.0.3 on a Red Hat 6.1 box and am having a bit of > trouble with some C code. > > I'm able to connect to the database OK (host = localhost, hostaddr = > 127.0.0.1, dbname = template1, user = postgres (the superuser), password > = whatever), but a PGRES_NONFATAL_ERROR status results from the > following query: > > result = PQexec ( dbc, "SELECT * FROM pg_user" ); > > If I run the query from an interactive session it works fine. I've > other programs that work fine, but none of them connect to "template1" > or attempt to access the system tables. Is there some sort of access > restriction related to the system tables? > > Thanks. > > -- > John Burski > I.T. Manager > 911 Emergency Products > 25 Sixth Avenue North > St. Cloud, MN 56303 > (320) 656 0076 www.911ep.com > > ++++++++++++++++++++++++++++++++++ > + How's your cheese holding out? + > ++++++++++++++++++++++++++++++++++ > > > > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster > ----------------------------------------------------------------------------- david@backpack.com BackPack Software, Inc. www.backpack.com +1 651.645.7550 voice "Life is an Adventure. +1 651.645.9798 fax Don't forget your BackPack!" -----------------------------------------------------------------------------
В списке pgsql-novice по дате отправления: