I have moved my easy C interface to pgsql into the main tree, and
renamed the old 'pginterface' to 'pgeasy'.  Should compile/install
cleanly.

Thomas, can you convert the manual page to SGML and add it to the other
manuals?  I have attached the troff manual page source.  Should I try
the conversion myself?

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  maillist@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

.\" This is -*-nroff-*-
.\" XXX standard disclaimer belongs here....
.\" $Header: /usr/local/cvsroot/pgsql/src/interfaces/libpgeasy/pgeasy.3,v 1.1 1999/10/11 18:03:00 momjian Exp $
.TH PGEASY INTRO 08/08/98 PostgreSQL PostgreSQL
.SH DESCRIPTION
Pgeasy allows you to cleanly interface to the libpq library,
more like a 4gl SQL interface.
.PP
It consists of set of simplified C functions that encapsulate the
functionality of libpq.
The functions are:

.nf
PGresult   *doquery(char *query);
PGconn     *connectdb();
void        disconnectdb();

int         fetch(void *param,...);
int         fetchwithnulls(void *param,...);
void        reset_fetch();

void        on_error_continue();
void        on_error_stop();

PGresult   *get_result();
void        set_result(PGresult *newres);
void        unset_result(PGresult *oldres);
.fi
.PP
Many functions return a structure or value, so you can do more work
with the result if required.  
.PP
You basically connect to the database with
.BR connectdb ,
issue your query with
.BR doquery ,
fetch the results with
.BR fetch ,
and finish with
.BR disconnectdb .
.PP
For
.IR select
queries,
.BR fetch 
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
.BR pgeasy
client on a system with a different architecture than the database
server.  If you pass a NULL pointer parameter, the column is skipped.
.BR fetchwithnulls
allows you to retieve the
.IR null
status of the field by passing an
.IR int*
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
.BR doquery .
.BR reset_fetch
starts the fetch back at the beginning.
.PP
.BR get_result ,
.BR set_result ,
and
.BR unset_result
allow you to handle multiple result sets at the same time.
.PP
There are a variety of demonstration programs in the
.BR pgeasy
source directory.
Mon, 11 Oct 1999 15:20:45 -0400 (EDT)
Bruce Momjian <maillist@candle.pha.pa.us>
pginterface/pgeasy