+++ /dev/null
-<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/Attic/libpgeasy.sgml,v 2.9 2002/03/04 18:50:20 momjian Exp $
--->
-
- <chapter id="pgeasy">
- <title><application>libpgeasy</application> - Simplified C Library</title>
-
- <note>
- <title>Author</title>
-
- <para>
- Written by Bruce Momjian
- (<email>pgman@candle.pha.pa.us</email>)
- and last updated 2002-03-04
- </para>
- </note>
-
- <para>
- <application>pgeasy</application> allows you to cleanly interface
- to the <application>libpq</application> library, more like a 4GL
- SQL interface. Refer to <xref linkend="libpq"> for more
- information about <application>libpq</application>.
- </para>
-
- <para>
- It consists of a set of simplified C functions that encapsulate the
- functionality of <application>libpq</application>. The functions are:
-
- <itemizedlist>
- <listitem>
-<synopsis>
-PGresult *doquery(char *query);
-</synopsis>
- </listitem>
-
- <listitem>
-<synopsis>
-PGconn *connectdb(char *options);
-</synopsis>
- </listitem>
-
- <listitem>
-<synopsis>
-void disconnectdb();
-</synopsis>
- </listitem>
-
- <listitem>
-<synopsis>
-int fetch(void *param,...);
-</synopsis>
- </listitem>
-
- <listitem>
-<synopsis>
-int fetchwithnulls(void *param,...);
-</synopsis>
- </listitem>
-
- <listitem>
-<synopsis>
-void reset_fetch();
-</synopsis>
- </listitem>
-
- <listitem>
-<synopsis>
-void on_error_continue();
-</synopsis>
- </listitem>
-
- <listitem>
-<synopsis>
-void on_error_stop();
-</synopsis>
- </listitem>
-
- <listitem>
-<synopsis>
-PGresult *get_result();
-</synopsis>
- </listitem>
-
- <listitem>
-<synopsis>
-void set_result(PGresult *newres);
-</synopsis>
- </listitem>
-
- </itemizedlist>
- </para>
-
- <para>
- Many functions return a structure or value, so you can 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 cannot be used if you are running the
- <application>pgeasy</application> 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 to indicate if the field is null. You can always use
- <application>libpq</application> functions on the
- <structname>PGresult</structname> pointer returned by
- <function>doquery</function>. <function>reset_fetch</function> starts
- the fetch back at the beginning.
- </para>
-
- <para>
- <function>get_result</function> and <function>set_result</function>
- allow you to handle multiple open result sets. Use
- <function>get_result</function> to save a result into an application
- variable. You can then later use <function>set_result</function> to
- return to the previously save result.
- </para>
-
- <para>
- There are several demonstration programs in
- <filename>pgsql/src/interfaces/libpgeasy/examples</>.
- </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:
--->