PQtrace doesn't work

Поиск
Список
Период
Сортировка
От W. van den Akker
Тема PQtrace doesn't work
Дата
Msg-id 401917DF.5030001@wilsoft.nl
обсуждение исходный текст
Ответ на A strange Vacuum error ...  (Dave Smith <dave.smith@candata.com>)
Ответы Re: PQtrace doesn't work  (Tom Lane <tgl@sss.pgh.pa.us>)
PQtrace doesn't work  ("W. van den Akker" <listsrv@wilsoft.nl>)
Список 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 по дате отправления:

Предыдущее
От: Dave Smith
Дата:
Сообщение: A strange Vacuum error ...
Следующее
От: Barbara Lindsey
Дата:
Сообщение: Grant question