Search Postgresql Archives

PQtrace doesn't work

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I've send this message also on 29-1-2004 and have since no solution for this problem .. >:o .
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 v8.0.1, but also happens
in 7.4.9.
Running under W2000 sp4, VC++ 6 SP5. If compiling under Linux then there is no problem. Obvious there is
something wrong with the use under windows

If I comment traceoption all works 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(); }


---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to majordomo@xxxxxxxxxxxxxx so that your
      message can get through to the mailing list cleanly

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux