|
|
|
@ -6,30 +6,6 @@ Attached is a copy of the Postgres support routines I wrote to allow me |
|
|
|
|
to more cleanly interface to the libpg library, more like a 4gl SQL |
|
|
|
|
interface. |
|
|
|
|
|
|
|
|
|
It has several features that may be useful for others: |
|
|
|
|
|
|
|
|
|
I have simplified the C code that calls libpq by wrapping all the |
|
|
|
|
functionality of libpq in calls to connectdb(), doquery(), fetch(), |
|
|
|
|
fetchwithnulls() and disconnectdb(). Each call returns a structure or |
|
|
|
|
value, so if you need to do more work with the result, you can. Also, I |
|
|
|
|
have a global variable that allows you to disable the error checking I |
|
|
|
|
have added to the doquery() routine. |
|
|
|
|
|
|
|
|
|
I have added a function called fetch(), which 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 are not useful |
|
|
|
|
if you are running the query engine on a system with a different |
|
|
|
|
architecture than the database server. If you pass a NULL pointer, the |
|
|
|
|
column is skipped, and you can use libpq to handle it as you wish. |
|
|
|
|
|
|
|
|
|
There are two functions, get_result() and set_result(), that allow you |
|
|
|
|
to handle multiple result sets at the same time. |
|
|
|
|
|
|
|
|
|
There is a reset_fetch() that starts the fetch back at the beginning. |
|
|
|
|
|
|
|
|
|
There is a demo program called pginsert that demonstrates how the |
|
|
|
|
library can be used. |
|
|
|
|
|
|
|
|
|
You can create a library of pginterface.c and halt.c, and just include |
|
|
|
|
pginterface.h in your source code. |
|
|
|
|
|
|
|
|
|