<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Library Functions</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 8.4.12 Documentation" HREF="index.html"><LINK REL="UP" TITLE="ECPG - Embedded SQL in C" HREF="ecpg.html"><LINK REL="PREVIOUS" TITLE="Processing Embedded SQL Programs" HREF="ecpg-process.html"><LINK REL="NEXT" TITLE="Internals" HREF="ecpg-develop.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"><META NAME="creation" CONTENT="2012-05-31T23:30:11"></HEAD ><BODY CLASS="SECT1" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="5" ALIGN="center" VALIGN="bottom" >PostgreSQL 8.4.12 Documentation</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="ecpg-process.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="ecpg.html" >Fast Backward</A ></TD ><TD WIDTH="60%" ALIGN="center" VALIGN="bottom" >Chapter 32. <SPAN CLASS="APPLICATION" >ECPG</SPAN > - Embedded <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > in C</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="top" ><A HREF="ecpg.html" >Fast Forward</A ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="top" ><A HREF="ecpg-develop.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="ECPG-LIBRARY" >32.14. Library Functions</A ></H1 ><P > The <TT CLASS="FILENAME" >libecpg</TT > library primarily contains <SPAN CLASS="QUOTE" >"hidden"</SPAN > 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. </P ><P ></P ><UL ><LI ><P > <CODE CLASS="FUNCTION" >ECPGdebug(int <TT CLASS="REPLACEABLE" ><I >on</I ></TT >, FILE *<TT CLASS="REPLACEABLE" ><I >stream</I ></TT >)</CODE > turns on debug logging if called with the first argument non-zero. Debug logging is done on <TT CLASS="REPLACEABLE" ><I >stream</I ></TT >. The log contains all <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > statements with all the input variables inserted, and the results from the <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > server. This can be very useful when searching for errors in your <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > statements. </P ><DIV CLASS="NOTE" ><BLOCKQUOTE CLASS="NOTE" ><P ><B >Note: </B > On Windows, if the <SPAN CLASS="APPLICATION" >ecpg</SPAN > libraries and an application are compiled with different flags, this function call will crash the application because the internal representation of the <TT CLASS="LITERAL" >FILE</TT > pointers differ. Specifically, multithreaded/single-threaded, release/debug, and static/dynamic flags should be the same for the library and all applications using that library. </P ></BLOCKQUOTE ></DIV ></LI ><LI ><P > <CODE CLASS="FUNCTION" >ECPGstatus(int <TT CLASS="REPLACEABLE" ><I >lineno</I ></TT >, const char* <TT CLASS="REPLACEABLE" ><I >connection_name</I ></TT >)</CODE > returns true if you are connected to a database and false if not. <TT CLASS="REPLACEABLE" ><I >connection_name</I ></TT > can be <TT CLASS="LITERAL" >NULL</TT > if a single connection is being used. </P ></LI ></UL ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="ecpg-process.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="ecpg-develop.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Processing Embedded SQL Programs</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="ecpg.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Internals</TD ></TR ></TABLE ></DIV ></BODY ></HTML >