Thread: C/C++ interface
Hello, in the C interface documentation there is an example using: res = PQexec(conn, "DECLARE mycursor CURSOR FOR select * from pg_database"); 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"); ...etc. So the statements are: DECLARE mycursor CURSOR FOR select * from pg_database; FETCH ALL in mycursor; What's the difference between this and simply doing: select * from pg_database; I tried this in psql, the result seemed the same. What I'm really using, however, is the C++ interface. Its documentation is not yet complete. There, too, I tried a version with and without cursor. The result seems to be the same, but returned int is always 0 for the version without cursor, so I get no information whether the query succeeded. Is someone maintaining the C++ interface and its documentation? Thanks, Volker Paul
Volker Paul <vpaul@dohle.com> writes: > Is someone maintaining the C++ interface and its documentation? Not really. Feel free to step up and lend a hand ... regards, tom lane
Cursors and standard queries are pretty much the same, except the cursor can control the rows returned. > Hello, > > in the C interface documentation there is an example using: > > res = PQexec(conn, "DECLARE mycursor CURSOR FOR select * from > pg_database"); > 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"); > > ...etc. So the statements are: > > DECLARE mycursor CURSOR FOR select * from pg_database; > FETCH ALL in mycursor; > > What's the difference between this and simply doing: > select * from pg_database; > > I tried this in psql, the result seemed the same. > > What I'm really using, however, is the C++ interface. > Its documentation is not yet complete. > There, too, I tried a version with and without cursor. > The result seems to be the same, but returned int is always 0 > for the version without cursor, so I get no information whether > the query succeeded. > > Is someone maintaining the C++ interface and its documentation? > > > Thanks, > > Volker Paul > -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
Tom Lane wrote: > > Volker Paul <vpaul@dohle.com> writes: > > Is someone maintaining the C++ interface and its documentation? > > Not really. Feel free to step up and lend a hand ... I found some functions of the C++ binding library that are not or scarcely documented, namely: int GetIsNull(int tup_num, int field_num); int GetIsNull(int tup_num, constchar* field_name); int GetLine(char* string, int length); void PutLine(const char* string); const char* OidStatus();int EndCopy(); I would like to complete the documentation at these points, and maybe add some small example C++ programs. In which form should I write the documentation and where should I send it? (I have no possibility at the moment to test SGML documents, i.e. convert them to HTML.) Regards, Volker Paul
>>>>>>>>>>>>>>>>>> Original Message <<<<<<<<<<<<<<<<<< On 2/16/01, 8:24:09 AM, Volker Paul <vpaul@dohle.com> wrote regarding Re: [SQL] C/C++ interface: > Tom Lane wrote: > > > > Volker Paul <vpaul@dohle.com> writes: > > > Is someone maintaining the C++ interface and its documentation? > > > > Not really. Feel free to step up and lend a hand ... > I would like to complete the documentation at these points, > and maybe add some small example C++ programs. > In which form should I write the documentation and where > should I send it? > (I have no possibility at the moment to test SGML documents, > i.e. convert them to HTML.) > Regards, > Volker Paul I believe there are guidelines in the developer's section of the postgresql.org website - towards the end of the developer's docs. - Richard Huxton