Re: join question - requesting for a simple C program where it can INSERT data into database as reference - Mailing list pgsql-sql

From joo
Subject Re: join question - requesting for a simple C program where it can INSERT data into database as reference
Date
Msg-id 001801c21347$bfd22020$320a0a0a@joo
Whole thread Raw
In response to Re: join question - three tables, two with foreign keys to  (Stephan Szabo <sszabo@megazone23.bigpanda.com>)
Responses join question - requesting for a simple C program where it can INSERT data into database as reference
List pgsql-sql
My problem is, i am writing a simple retrieval program using C, to retrieve
a set of records from database. Then i'll make certain calculation based on
the data that i have retrieved and write it on a new database. I have follow
the sample program  to do the retrieval and it works. But i don't seems to
have any samples to do an INSERT to the database? please anyone who have
such simple or working programs where it can INSERT to any database , please
reply to me as a reference.


here is the sample program that i used to do my retrieval:


#include <stdio.h>
#include "libpq-fe.h"

void
exit_nicely(PGconn *conn)
{   PQfinish(conn);   exit(1);
}

main()
{   char       *pghost,              *pgport,              *pgoptions,              *pgtty;   char       *dbName;   int
       nFields;   int         i,               j;
 


   PGconn     *conn;   PGresult   *res;
   pghost = NULL;   pgport = NULL;   pgoptions = NULL;
   pgtty = NULL;   dbName = "template1";

   conn = PQsetdb(pghost, pgport, pgoptions, pgtty, dbName);

   if (PQstatus(conn) == CONNECTION_BAD)   {       fprintf(stderr, "Connection to database '%s' failed.\n", dbName);
  fprintf(stderr, "%s", PQerrorMessage(conn));       exit_nicely(conn);   }
 

   res = PQexec(conn, "BEGIN");   if (!res || PQresultStatus(res) != PGRES_COMMAND_OK)
   {       fprintf(stderr, "BEGIN command failed\n");       PQclear(res);       exit_nicely(conn);   }

   PQclear(res);

   res = PQexec(conn, "DECLARE mycursor CURSOR FOR select * from event");   if (!res || PQresultStatus(res) !=
PGRES_COMMAND_OK)  {       fprintf(stderr, "DECLARE CURSOR command failed\n");       PQclear(res);
exit_nicely(conn);  }   PQclear(res);   res = PQexec(conn, "FETCH ALL in mycursor");   if (!res || PQresultStatus(res)
!=PGRES_TUPLES_OK)   {       fprintf(stderr, "FETCH ALL command didn't return tuples
 
properly\n");       PQclear(res);       exit_nicely(conn);   }

   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);
   return 0;

}
Thanks,
joo




pgsql-sql by date:

Previous
From: Andrew Hammond
Date:
Subject: simple recursive function in plpgsql fails
Next
From: "Christopher Kings-Lynne"
Date:
Subject: Re: make a unique index for foreign keys?