mirror of
https://github.com/postgres/postgres.git
synced 2025-04-27 22:56:53 +03:00
Add Bruce's pgeasy doc from the man page.
This commit is contained in:
parent
f38d2afa16
commit
5e55bb08fd
155
doc/src/sgml/libpgeasy.sgml
Normal file
155
doc/src/sgml/libpgeasy.sgml
Normal file
@ -0,0 +1,155 @@
|
|||||||
|
<!--
|
||||||
|
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpgeasy.sgml,v 2.1 2000/03/31 03:26:21 thomas Exp $
|
||||||
|
-->
|
||||||
|
|
||||||
|
<chapter id="pgeasy-chapter">
|
||||||
|
<title id="pgeasy">libpgeasy - Simplified C Binding Library</title>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Author</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Written by Bruce Momjian
|
||||||
|
(<ulink url="mailto:root@candle.pha.pa.us">root@candle.pha.pa.us</ulink>)
|
||||||
|
and last updated 2000-03-30.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<productname>pgeasy</productname> allows you to cleanly interface
|
||||||
|
to the <productname>libpq</productname> library,
|
||||||
|
more like a 4GL SQL interface.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
It consists of set of simplified C functions that encapsulate the
|
||||||
|
functionality of libpq.
|
||||||
|
The functions are:
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
PGresult *doquery(char *query);
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
PGconn *connectdb();
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
void disconnectdb();
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
int fetch(void *param,...);
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
int fetchwithnulls(void *param,...);
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
void reset_fetch();
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
void on_error_continue();
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
void on_error_stop();
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
PGresult *get_result();
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
void set_result(PGresult *newres);
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
void unset_result(PGresult *oldres);
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Many functions return a structure or value, so you can do more work
|
||||||
|
with the result if required.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
You basically connect to the database with <function>connectdb</function>,
|
||||||
|
issue your query with <function>doquery</function>,
|
||||||
|
fetch the results with <function>fetch</function>,
|
||||||
|
and finish with <function>disconnectdb</function>.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
For <literal>select</literal> queries, <function>fetch</function>
|
||||||
|
allows you to pass pointers as parameters, and on return the variables
|
||||||
|
are filled with data from the binary cursor you opened. These binary
|
||||||
|
cursors can not be used if you are running the
|
||||||
|
<productname>pgeasy</productname>
|
||||||
|
client on a system with a different architecture than the database
|
||||||
|
server. If you pass a NULL pointer parameter, the column is skipped.
|
||||||
|
<function>fetchwithnulls</function> allows you to retrieve the NULL
|
||||||
|
status of the field by passing an <literal>int*</literal>
|
||||||
|
after each result pointer, which returns true or false if the field is null.
|
||||||
|
You can always use libpq functions on the PGresult pointer returned
|
||||||
|
by <function>doquery</function>.
|
||||||
|
<function>reset_fetch</function> starts the fetch back at the beginning.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<function>get_result</function>,
|
||||||
|
<function>set_result</function>,
|
||||||
|
and
|
||||||
|
<function>unset_result</function>
|
||||||
|
allow you to handle multiple result sets at the same time.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
There are a variety of demonstration programs in the
|
||||||
|
source directory.
|
||||||
|
</para>
|
||||||
|
</chapter>
|
||||||
|
|
||||||
|
<!-- Keep this comment at the end of the file
|
||||||
|
Local variables:
|
||||||
|
mode:sgml
|
||||||
|
sgml-omittag:nil
|
||||||
|
sgml-shorttag:t
|
||||||
|
sgml-minimize-attributes:nil
|
||||||
|
sgml-always-quote-attributes:t
|
||||||
|
sgml-indent-step:1
|
||||||
|
sgml-indent-data:t
|
||||||
|
sgml-parent-document:nil
|
||||||
|
sgml-default-dtd-file:"./reference.ced"
|
||||||
|
sgml-exposed-tags:nil
|
||||||
|
sgml-local-catalogs:("/usr/lib/sgml/catalog")
|
||||||
|
sgml-local-ecat-files:nil
|
||||||
|
End:
|
||||||
|
-->
|
@ -1,3 +1,7 @@
|
|||||||
|
<!--
|
||||||
|
$Header: /cvsroot/pgsql/doc/src/sgml/postgres.sgml,v 1.35 2000/03/31 03:26:21 thomas Exp $
|
||||||
|
-->
|
||||||
|
|
||||||
<!doctype book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
|
<!doctype book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
|
||||||
|
|
||||||
<!entity about SYSTEM "about.sgml">
|
<!entity about SYSTEM "about.sgml">
|
||||||
@ -68,6 +72,7 @@
|
|||||||
<!entity intro-pg SYSTEM "intro-pg.sgml">
|
<!entity intro-pg SYSTEM "intro-pg.sgml">
|
||||||
<!entity indexcost SYSTEM "indexcost.sgml">
|
<!entity indexcost SYSTEM "indexcost.sgml">
|
||||||
<!entity jdbc SYSTEM "jdbc.sgml">
|
<!entity jdbc SYSTEM "jdbc.sgml">
|
||||||
|
<!entity libpgeasy SYSTEM "libpgeasy.sgml">
|
||||||
<!entity libpq SYSTEM "libpq.sgml">
|
<!entity libpq SYSTEM "libpq.sgml">
|
||||||
<!entity libpqpp SYSTEM "libpq++.sgml">
|
<!entity libpqpp SYSTEM "libpq++.sgml">
|
||||||
<!entity libpgtcl SYSTEM "libpgtcl.sgml">
|
<!entity libpgtcl SYSTEM "libpgtcl.sgml">
|
||||||
@ -269,6 +274,7 @@ Your name here...
|
|||||||
&libpq;
|
&libpq;
|
||||||
&libpqpp;
|
&libpqpp;
|
||||||
&libpgtcl;
|
&libpgtcl;
|
||||||
|
&libpgeasy;
|
||||||
&odbc;
|
&odbc;
|
||||||
&jdbc;
|
&jdbc;
|
||||||
&lisp;
|
&lisp;
|
||||||
@ -345,7 +351,7 @@ sgml-indent-data:t
|
|||||||
sgml-parent-document:nil
|
sgml-parent-document:nil
|
||||||
sgml-default-dtd-file:"./reference.ced"
|
sgml-default-dtd-file:"./reference.ced"
|
||||||
sgml-exposed-tags:nil
|
sgml-exposed-tags:nil
|
||||||
sgml-local-catalogs:("/usr/lib/sgml/CATALOG")
|
sgml-local-catalogs:("/usr/lib/sgml/catalog")
|
||||||
sgml-local-ecat-files:nil
|
sgml-local-ecat-files:nil
|
||||||
End:
|
End:
|
||||||
-->
|
-->
|
||||||
|
@ -1,66 +1,18 @@
|
|||||||
<!--
|
<!--
|
||||||
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/programmer.sgml,v 1.24 2000/03/30 22:34:29 thomas Exp $
|
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/programmer.sgml,v 1.25 2000/03/31 03:26:21 thomas Exp $
|
||||||
|
|
||||||
Postgres Programmer's Guide.
|
Postgres Programmer's Guide.
|
||||||
|
|
||||||
$Log: programmer.sgml,v $
|
|
||||||
Revision 1.24 2000/03/30 22:34:29 thomas
|
|
||||||
Remove PL/perl language chapter, since it shows up in the User's Guide.
|
|
||||||
|
|
||||||
Revision 1.23 2000/03/30 22:22:41 thomas
|
|
||||||
Accumulated fixups.
|
|
||||||
Add some chapters on new topics.
|
|
||||||
Change to referencing OASIS/Docbook v3.1 rather than Davenport/Docbook v3.0
|
|
||||||
Grepped for and fixed apparent tag mangling from emacs
|
|
||||||
"Normalize" operation. Should be the last of those.
|
|
||||||
|
|
||||||
Revision 1.22 2000/03/28 14:16:06 thomas
|
|
||||||
Update SGML catalog references to DocBook 3.1 on FreeBSD.
|
|
||||||
Matches postgresql.org/hub.org environment.
|
|
||||||
|
|
||||||
Revision 1.21 2000/02/02 16:25:04 thomas
|
|
||||||
Add short chapter in developer's guide on formatting source code.
|
|
||||||
|
|
||||||
Revision 1.20 1999/12/06 16:37:11 thomas
|
|
||||||
Remove references to PostgreSQL as "public-domain" since that has a
|
|
||||||
specific meaning wrt copyright (or lack thereof).
|
|
||||||
|
|
||||||
Revision 1.19 1999/07/22 15:11:04 thomas
|
|
||||||
Complete merge of all old man page information.
|
|
||||||
lisp.sgml is a placeholder for Eric Marsden's upcoming contribution.
|
|
||||||
catalogs.sgml is not yet marked up or integrated.
|
|
||||||
It should perhaps become an appendix.
|
|
||||||
|
|
||||||
Revision 1.18 1999/06/23 06:21:19 thomas
|
|
||||||
Remove User's Guide entities since they were not being used.
|
|
||||||
|
|
||||||
Revision 1.16 1999/05/26 17:30:30 thomas
|
|
||||||
Add chapters on CVS access, MVCC, SQL theory to the docs.
|
|
||||||
Add an appendix with more details on date/time attributes and handling.
|
|
||||||
Update most references to Postgres version numbers to 6.5,
|
|
||||||
*except* for the porting list which will require a report
|
|
||||||
from a successful installation to be updated.
|
|
||||||
|
|
||||||
Revision 1.12 1999/02/13 03:54:51 thomas
|
|
||||||
Re-enable arch-dev.sgml now that it has new information from Stefan's
|
|
||||||
Master's Thesis.
|
|
||||||
|
|
||||||
Revision 1.10 1998/10/31 09:36:36 thomas
|
|
||||||
Cleanup for v6.4 release.
|
|
||||||
Make new file current.sgml to hold release info for the current release.
|
|
||||||
Should be moved to release.sgml before filling with next release info.
|
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<!doctype book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
|
<!doctype book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" [
|
||||||
|
|
||||||
<!entity about SYSTEM "about.sgml">
|
<!entity about SYSTEM "about.sgml">
|
||||||
<!entity history SYSTEM "history.sgml">
|
<!entity history SYSTEM "history.sgml">
|
||||||
<!entity info SYSTEM "info.sgml">
|
<!entity info SYSTEM "info.sgml">
|
||||||
<!entity legal SYSTEM "legal.sgml">
|
<!entity legal SYSTEM "legal.sgml">
|
||||||
<!entity notation SYSTEM "notation.sgml">
|
<!entity notation SYSTEM "notation.sgml">
|
||||||
<!entity problems SYSTEM "problems.sgml">
|
<!entity problems SYSTEM "problems.sgml">
|
||||||
<!entity y2k SYSTEM "y2k.sgml">
|
<!entity y2k SYSTEM "y2k.sgml">
|
||||||
|
|
||||||
<!entity arch-pg SYSTEM "arch-pg.sgml">
|
<!entity arch-pg SYSTEM "arch-pg.sgml">
|
||||||
<!entity dfunc SYSTEM "dfunc.sgml">
|
<!entity dfunc SYSTEM "dfunc.sgml">
|
||||||
@ -71,6 +23,7 @@ Make new file current.sgml to hold release info for the current release.
|
|||||||
<!entity intro-pg SYSTEM "intro-pg.sgml">
|
<!entity intro-pg SYSTEM "intro-pg.sgml">
|
||||||
<!entity indexcost SYSTEM "indexcost.sgml">
|
<!entity indexcost SYSTEM "indexcost.sgml">
|
||||||
<!entity jdbc SYSTEM "jdbc.sgml">
|
<!entity jdbc SYSTEM "jdbc.sgml">
|
||||||
|
<!entity libpgeasy SYSTEM "libpgeasy.sgml">
|
||||||
<!entity libpq SYSTEM "libpq.sgml">
|
<!entity libpq SYSTEM "libpq.sgml">
|
||||||
<!entity libpqpp SYSTEM "libpq++.sgml">
|
<!entity libpqpp SYSTEM "libpq++.sgml">
|
||||||
<!entity libpgtcl SYSTEM "libpgtcl.sgml">
|
<!entity libpgtcl SYSTEM "libpgtcl.sgml">
|
||||||
@ -201,6 +154,7 @@ Disable it until we put in some info.
|
|||||||
&libpq;
|
&libpq;
|
||||||
&libpqpp;
|
&libpqpp;
|
||||||
&libpgtcl;
|
&libpgtcl;
|
||||||
|
&libpgeasy;
|
||||||
&ecpg;
|
&ecpg;
|
||||||
&odbc;
|
&odbc;
|
||||||
&jdbc;
|
&jdbc;
|
||||||
@ -246,7 +200,7 @@ sgml-indent-data:t
|
|||||||
sgml-parent-document:nil
|
sgml-parent-document:nil
|
||||||
sgml-default-dtd-file:"./reference.ced"
|
sgml-default-dtd-file:"./reference.ced"
|
||||||
sgml-exposed-tags:nil
|
sgml-exposed-tags:nil
|
||||||
sgml-local-catalogs:("/usr/lib/sgml/CATALOG")
|
sgml-local-catalogs:("/usr/lib/sgml/catalog")
|
||||||
sgml-local-ecat-files:nil
|
sgml-local-ecat-files:nil
|
||||||
End:
|
End:
|
||||||
-->
|
-->
|
||||||
|
Loading…
x
Reference in New Issue
Block a user