PQtrace doesn't work - Mailing list pgsql-general
From | W. van den Akker |
---|---|
Subject | PQtrace doesn't work |
Date | |
Msg-id | 401917DF.5030001@wilsoft.nl Whole thread Raw |
In response to | A strange Vacuum error ... (Dave Smith <dave.smith@candata.com>) |
Responses |
Re: PQtrace doesn't work
PQtrace doesn't work |
List | pgsql-general |
Hello, I have a little test program (see at the end of the message). The program crashes when PQTrace is called (instruction xxxx referenced memory at "0x00000010", the memory could not be written" (obvious ... ) I use the library libpqdll.lib and postgresql v7.3.4. When I comment the line the program runs fine. Any ideas? gr, Willem. #include <stdio.h> #include <stdlib.h> #include <libpq-fe.h> #include <winsock.h> void main () { int nFields; int i, j; PGconn *conn; PGresult *res; char *pghost = "linux"; char *dbName = "some_db"; FILE *debug; WSADATA wsadata; WSAStartup(0x0101, &wsadata); conn = PQsetdbLogin (pghost, NULL, NULL, NULL, dbName, "user",""); if (PQstatus(conn) == CONNECTION_BAD) { printf ("Connection to database %s is failed\n", dbName); printf ("%s", PQerrorMessage (conn)); PQfinish (conn); exit (1); } debug = fopen ("trace.out", "w"); --->> PQtrace (conn, debug); res = PQexec (conn, "BEGIN"); if (!res || PQresultStatus (res) != PGRES_COMMAND_OK) { printf ("BEGIN command failed\n"); PQclear (res); PQfinish (conn); exit (1); } PQclear (res); res = PQexec (conn, "DECLARE mycursor CURSOR FOR select sum(id) from relaties"); if (!res || PQresultStatus (res) != PGRES_COMMAND_OK) { printf ("DECLARE CURSOR command failed\n"); PQclear (res); PQfinish (conn); exit (1); } PQclear (res); res = PQexec (conn, "FETCH ALL in mycursor"); if (!res || PQresultStatus (res) != PGRES_TUPLES_OK) { printf ("FETCH ALL command didn't return tuples properly\n"); PQclear (res); PQfinish (conn); exit (1); } nFields = PQnfields (res); for (i = 0; i < nFields; i++) printf ("%-15s", PQfname (res, i)); printf ("\n\n"); for (i = 0; i < PQntuples (res); i++) { for (j = 0; j < nFields; j++) printf ("%-15s", PQgetvalue (res, i, j)); printf ("\n"); } PQclear (res); res = PQexec (conn, "CLOSE mycursor"); PQclear (res); res = PQexec (conn, "COMMIT"); PQclear (res); PQfinish (conn); fclose (debug); WSACleanup(); }
pgsql-general by date: