C/C++ interface

Started by Volker Paulabout 25 years ago6 messagesdocs
Jump to latest
#1Volker Paul
vpaul@dohle.com

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

#2Bruce Momjian
bruce@momjian.us
In reply to: Volker Paul (#1)
Re: C/C++ interface

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, Pennsylvania 19026
#3Tom Lane
tgl@sss.pgh.pa.us
In reply to: Volker Paul (#1)
Re: C/C++ interface

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

#4Volker Paul
vpaul@dohle.com
In reply to: Volker Paul (#1)
Re: 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 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, const char* 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

#5Richard Huxton
dev@archonet.com
In reply to: Volker Paul (#4)
Re: C/C++ interface

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

#6Bruce Momjian
bruce@momjian.us
In reply to: Volker Paul (#4)
Re: [SQL] C/C++ interface

There is a libpq++.sgml. If you could send a patch against that, it
would be prefect.

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, const char* 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

-- 
  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, Pennsylvania 19026