Received: from localhost.localdomain (postgresql.org [64.49.215.8]) by localhost (Postfix) with ESMTP id 5FDED475A1E for ; Thu, 13 Jun 2002 22:10:05 -0400 (EDT) Received: from mail.sebasasia.com (unknown [203.115.208.204]) by postgresql.org (Postfix) with ESMTP id 7684447716D for ; Thu, 13 Jun 2002 22:00:47 -0400 (EDT) Message-ID: <001801c21347$bfd22020$320a0a0a@joo> From: "joo" To: References: <20020613081443.A4208-100000@megazone23.bigpanda.com> Subject: Re: join question - requesting for a simple C program where it can INSERT data into database as reference Date: Fri, 14 Jun 2002 10:03:58 +0800 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Archive-Number: 200206/202 X-Sequence-Number: 8167 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 #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