35.11. Library Functions
Thelibecpg library primarily contains“hidden” functions that are used to implement the functionality expressed by the embedded SQL commands. But there are some functions that can usefully be called directly. Note that this makes your code unportable.
ECPGdebug(intturns on debug logging if called with the first argument non-zero. Debug logging is done onon, FILE *stream)stream. The log contains allSQL statements with all the input variables inserted, and the results from thePostgres Pro server. This can be very useful when searching for errors in yourSQL statements.Note
On Windows, if theecpg libraries and an application are compiled with different flags, this function call will crash the application because the internal representation of the
FILEpointers differ. Specifically, multithreaded/single-threaded, release/debug, and static/dynamic flags should be the same for the library and all applications using that library.ECPGget_PGconn(const char *returns the library database connection handle identified by the given name. Ifconnection_name)connection_nameis set toNULL, the current connection handle is returned. If no connection handle can be identified, the function returnsNULL. The returned connection handle can be used to call any other functions fromlibpq, if necessary.Note
It is a bad idea to manipulate database connection handles made fromecpg directly withlibpq routines.
ECPGtransactionStatus(const char *returns the current transaction status of the given connection identified byconnection_name)connection_name. SeeSection 33.2 and libpq'sPQtransactionStatusfor details about the returned status codes.ECPGstatus(intreturns true if you are connected to a database and false if not.lineno, const char*connection_name)connection_namecan beNULLif a single connection is being used.