<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>FreeTDS API: /usr/local/users/home/jklowden/projects/releases/freetds/0.82/src/dblib/dblib.c File Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.4.1 --> <div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a> | <a class="qindex" href="pages.html">Related Pages</a></div> <div class="nav"> <a class="el" href="dir_000002.html">src</a> / <a class="el" href="dir_000006.html">dblib</a></div> <h1>dblib.c File Reference</h1>Main implementation file for <code>db-lib</code>. <a href="#_details">More...</a> <p> <code>#include <stdarg.h></code><br> <code>#include <time.h></code><br> <code>#include <assert.h></code><br> <code>#include <stdio.h></code><br> <code>#include "<a class="el" href="a00311.html">tds.h</a>"</code><br> <code>#include "tdsthread.h"</code><br> <code>#include "sybfront.h"</code><br> <code>#include "<a class="el" href="a00308.html">sybdb.h</a>"</code><br> <code>#include "syberror.h"</code><br> <code>#include "dblib.h"</code><br> <code>#include "tdsconvert.h"</code><br> <code>#include "replacements.h"</code><br> <code>#include "buffering.h"</code><br> <table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga99">SYBDBLIB</a> 1</td></tr> <tr><td colspan="2"><br><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="a00133.html">_dblib_error_message</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga0">DBLIB_ERROR_MESSAGE</a></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="a00137.html">dblib_context</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00195.html#a4">DBLIBCONTEXT</a></td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a27" doxytag="dblib.c::_db_get_server_type"></a> static int </td><td class="memItemRight" valign="bottom"><b>_db_get_server_type</b> (int bindtype)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a30" doxytag="dblib.c::_dbnullable"></a> static int </td><td class="memItemRight" valign="bottom"><b>_dbnullable</b> (DBPROCESS *dbproc, int column)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a29" doxytag="dblib.c::_dbprdate"></a> static char * </td><td class="memItemRight" valign="bottom"><b>_dbprdate</b> (char *timestr)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a26" doxytag="dblib.c::_dbresults"></a> static RETCODE </td><td class="memItemRight" valign="bottom"><b>_dbresults</b> (DBPROCESS *dbproc)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a28" doxytag="dblib.c::_get_printable_size"></a> static int </td><td class="memItemRight" valign="bottom"><b>_get_printable_size</b> (<a class="el" href="a00140.html">TDSCOLUMN</a> *colinfo)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a32" doxytag="dblib.c::copy_data_to_host_var"></a> static void </td><td class="memItemRight" valign="bottom"><b>copy_data_to_host_var</b> (DBPROCESS *, int, const BYTE *, DBINT, int, BYTE *, DBINT, int, DBSMALLINT *)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">BYTE * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga51">dbadata</a> (DBPROCESS *dbproc, int computeid, int column)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get address of compute column data. <a href="a00275.html#ga51"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBINT </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga48">dbadlen</a> (DBPROCESS *dbproc, int computeid, int column)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get size of data in a compute column. <a href="a00275.html#ga48"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga50">dbaltbind</a> (DBPROCESS *dbproc, int computeid, int column, int vartype, DBINT varlen, BYTE *varaddr)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Bind a compute column to a program variable. <a href="a00275.html#ga50"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga47">dbaltcolid</a> (DBPROCESS *dbproc, int computeid, int column)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get column ID of a compute column. <a href="a00275.html#ga47"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBINT </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga96">dbaltlen</a> (DBPROCESS *dbproc, int computeid, int column)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get size of data in compute column. <a href="a00275.html#ga96"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga52">dbaltop</a> (DBPROCESS *dbproc, int computeid, int column)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get aggregation operator for a compute column. <a href="a00275.html#ga52"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga49">dbalttype</a> (DBPROCESS *dbproc, int computeid, int column)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get datatype for a compute column. <a href="a00275.html#ga49"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBINT </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga95">dbaltutype</a> (DBPROCESS *dbproc, int computeid, int column)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get user-defined datatype of a compute column. <a href="a00275.html#ga95"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga22">dbanullbind</a> (DBPROCESS *dbproc, int computeid, int column, DBINT *indicator)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Tie a null-indicator to a compute result column. <a href="a00275.html#ga22"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga19">dbbind</a> (DBPROCESS *dbproc, int column, int vartype, DBINT varlen, BYTE *varaddr)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Tie a host variable to a resultset column. <a href="a00275.html#ga19"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a36" doxytag="dblib.c::dbbindtype"></a> static int </td><td class="memItemRight" valign="bottom"><b>dbbindtype</b> (int datatype)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">BYTE * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga58">dbbylist</a> (DBPROCESS *dbproc, int computeid, int *size)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get <code>bylist</code> for a compute row. <a href="a00275.html#ga58"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga33">dbcancel</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Cancel the current command batch. <a href="a00275.html#ga33"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga68">dbcanquery</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Cancel the query currently being retrieved, discarding all pending rows. <a href="a00275.html#ga68"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga91">dbchange</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">See if a command caused the current database to change. <a href="a00275.html#ga91"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga8">dbclose</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Close a connection to the server and free associated resources. <a href="a00275.html#ga8"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga23">dbclrbuf</a> (DBPROCESS *dbproc, DBINT n)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Clear <em>n</em> rows from the row buffer. <a href="a00275.html#ga23"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga70">dbclropt</a> (DBPROCESS *dbproc, int option, char *param)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Reset an option. <a href="a00275.html#ga70"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga5">dbcmd</a> (DBPROCESS *dbproc, const char *cmdstring)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><code>Append</code> SQL to the command buffer. <a href="a00275.html#ga5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga8">dbcmdrow</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">See if the current command can return rows. <a href="a00281.html#ga8"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00195.html#a82">dbcolinfo</a> (DBPROCESS *dbproc, CI_TYPE type, DBINT column, DBINT computeid, DBCOL *pdbcol)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get a bunch of column attributes with a single call (Microsoft-compatibility feature). <a href="#a82"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBINT </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga29">dbcollen</a> (DBPROCESS *dbproc, int column)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get size of a regular result column. <a href="a00275.html#ga29"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga12">dbcolname</a> (DBPROCESS *dbproc, int column)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return name of a regular result column. <a href="a00275.html#ga12"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga28">dbcolsource</a> (DBPROCESS *dbproc, int column)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get base database column name for a result set column. <a href="a00275.html#ga28"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga25">dbcoltype</a> (DBPROCESS *dbproc, int column)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the datatype of a regular result set column. <a href="a00275.html#ga25"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBTYPEINFO * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga27">dbcoltypeinfo</a> (DBPROCESS *dbproc, int column)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get precision and scale information for a regular result column. <a href="a00275.html#ga27"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga26">dbcolutype</a> (DBPROCESS *dbproc, int column)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get user-defined datatype of a regular result column. <a href="a00275.html#ga26"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBINT </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga17">dbconvert</a> (DBPROCESS *dbproc, int srctype, const BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Convert one datatype to another. <a href="a00275.html#ga17"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBINT </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga18">dbconvert_ps</a> (DBPROCESS *dbproc, int srctype, BYTE *src, DBINT srclen, int desttype, BYTE *dest, DBINT destlen, DBTYPEINFO *typeinfo)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">cf. <a class="el" href="a00275.html#ga17">dbconvert()</a>, above <a href="a00275.html#ga18"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBINT </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga6">dbcount</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get count of rows processed. <a href="a00281.html#ga6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga13">dbcurcmd</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get number of the row just returned. <a href="a00281.html#ga13"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBINT </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga11">dbcurrow</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get number of the row currently being read. <a href="a00281.html#ga11"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">BYTE * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga32">dbdata</a> (DBPROCESS *dbproc, int column)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get address of data in a regular result column. <a href="a00275.html#ga32"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga0">dbdatecmp</a> (DBPROCESS *dbproc, DBDATETIME *d1, DBDATETIME *d2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compare DBDATETIME values, similar to strcmp(3). <a href="a00280.html#ga0"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga61">dbdatecrack</a> (DBPROCESS *dbproc, DBDATEREC *di, DBDATETIME *datetime)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Break a DBDATETIME value into useful pieces. <a href="a00275.html#ga61"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBINT </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga31">dbdatlen</a> (DBPROCESS *dbproc, int column)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get size of current row's data in a regular result column. <a href="a00275.html#ga31"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBBOOL </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga9">dbdead</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Check if <em>dbproc</em> is an ex-parrot. <a href="a00281.html#ga9"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">EHANDLEFUNC </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga59">dberrhandle</a> (EHANDLEFUNC handler)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set an error handler, for messages from db-lib. <a href="a00275.html#ga59"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga9">dbexit</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Close server connections and free all related structures. <a href="a00275.html#ga9"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga4">dbfcmd</a> (DBPROCESS *dbproc, const char *fmt,...)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight"><code>printf-like</code> way to form SQL to send to the server. <a href="a00275.html#ga4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBINT </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga15">dbfirstrow</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get number of the first row in the row buffer. <a href="a00281.html#ga15"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga69">dbfreebuf</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Erase the command buffer, in case <code>DBNOAUTOFREE</code> was set with <a class="el" href="a00275.html#ga53">dbsetopt()</a>. <a href="a00275.html#ga69"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga74">dbgetchar</a> (DBPROCESS *dbproc, int pos)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get address of a position in the command buffer. <a href="a00275.html#ga74"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga43">dbgetmaxprocs</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">get maximum simultaneous connections db-lib will open to the server. <a href="a00275.html#ga43"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00195.html#a34">dbgetnull</a> (DBPROCESS *dbproc, int bindtype, int varlen, BYTE *varaddr)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga41">dbgetpacket</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get TDS packet size for the connection. <a href="a00275.html#ga41"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga13">dbgetrow</a> (DBPROCESS *dbproc, DBINT row)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Read a row from the row buffer. <a href="a00275.html#ga13"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga45">dbgettime</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get maximum seconds db-lib waits for a server response to query. <a href="a00275.html#ga45"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">BYTE * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga66">dbgetuserdata</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get address of user-allocated data from a <code>DBPROCESS</code>. <a href="a00275.html#ga66"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBBOOL </td><td class="memItemRight" valign="bottom"><a class="el" href="a00276.html#ga0">dbhasretstat</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Determine if query generated a return status number. <a href="a00276.html#ga0"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga0">dbinit</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize db-lib. <a href="a00275.html#ga0"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga17">dbiordesc</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get file descriptor of the socket used by a <code>DBPROCESS</code> to read data coming from the server. (!). <a href="a00281.html#ga17"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga18">dbiowdesc</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get file descriptor of the socket used by a <code>DBPROCESS</code> to write data coming to the server. (!). <a href="a00281.html#ga18"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a197" doxytag="dblib.c::dbisavail"></a> DBBOOL </td><td class="memItemRight" valign="bottom"><b>dbisavail</b> (DBPROCESS *dbproc)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBBOOL </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga71">dbisopt</a> (DBPROCESS *dbproc, int option, char *param)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get value of an option. <a href="a00275.html#ga71"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBINT </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga16">dblastrow</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get number of the last row in the row buffer. <a href="a00281.html#ga16"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">LOGINREC * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga1">dblogin</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Allocate a <code>LOGINREC</code> structure. <a href="a00275.html#ga1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga2" doxytag="dblib.c::dbloginfree"></a> void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga2">dbloginfree</a> (LOGINREC *login)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">free the <code>LOGINREC</code> <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga17">dbmny4add</a> (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *sum)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add two DBMONEY4 values. <a href="a00279.html#ga17"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga21">dbmny4cmp</a> (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compare two DBMONEY4 values. <a href="a00279.html#ga21"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga22">dbmny4copy</a> (DBPROCESS *dbproc, DBMONEY4 *src, DBMONEY4 *dest)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Copy a DBMONEY4 value. <a href="a00279.html#ga22"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga20">dbmny4divide</a> (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *quotient)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Divide two DBMONEY4 values. <a href="a00279.html#ga20"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga15">dbmny4minus</a> (DBPROCESS *dbproc, DBMONEY4 *src, DBMONEY4 *dest)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Negate a DBMONEY4 value. <a href="a00279.html#ga15"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga19">dbmny4mul</a> (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *prod)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Multiply two DBMONEY4 values. <a href="a00279.html#ga19"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga18">dbmny4sub</a> (DBPROCESS *dbproc, DBMONEY4 *m1, DBMONEY4 *m2, DBMONEY4 *diff)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Subtract two DBMONEY4 values. <a href="a00279.html#ga18"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga16">dbmny4zero</a> (DBPROCESS *dbproc, DBMONEY4 *dest)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Zero a DBMONEY4 value. <a href="a00279.html#ga16"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga0">dbmnyadd</a> (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *sum)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add two DBMONEY values. <a href="a00279.html#ga0"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga4">dbmnycmp</a> (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Compare two DBMONEY values. <a href="a00279.html#ga4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga23">dbmnycopy</a> (DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Copy a DBMONEY value. <a href="a00279.html#ga23"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga13">dbmnydec</a> (DBPROCESS *dbproc, DBMONEY *amount)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Subtract $0.0001 from a DBMONEY value. <a href="a00279.html#ga13"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga3">dbmnydivide</a> (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *quotient)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Divide two DBMONEY values. <a href="a00279.html#ga3"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga11">dbmnydown</a> (DBPROCESS *dbproc, DBMONEY *amount, int divisor, int *remainder)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Divide a DBMONEY value by a positive integer. <a href="a00279.html#ga11"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga12">dbmnyinc</a> (DBPROCESS *dbproc, DBMONEY *amount)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add $0.0001 to a DBMONEY value. <a href="a00279.html#ga12"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga10">dbmnyinit</a> (DBPROCESS *dbproc, DBMONEY *amount, int trim, DBBOOL *negative)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Prepare a DBMONEY value for use with <a class="el" href="a00279.html#ga9">dbmnyndigit()</a>. <a href="a00279.html#ga10"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga8">dbmnymaxneg</a> (DBPROCESS *dbproc, DBMONEY *amount)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get maximum negative DBMONEY value supported. <a href="a00279.html#ga8"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga7">dbmnymaxpos</a> (DBPROCESS *dbproc, DBMONEY *amount)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get maximum positive DBMONEY value supported. <a href="a00279.html#ga7"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga14">dbmnyminus</a> (DBPROCESS *dbproc, DBMONEY *src, DBMONEY *dest)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Negate a DBMONEY value. <a href="a00279.html#ga14"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga2">dbmnymul</a> (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *prod)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Multiply two DBMONEY values. <a href="a00279.html#ga2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga9">dbmnyndigit</a> (DBPROCESS *dbproc, DBMONEY *mnyptr, DBCHAR *digit, DBBOOL *zero)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the least significant digit of a DBMONEY value, represented as a character. <a href="a00279.html#ga9"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga5">dbmnyscale</a> (DBPROCESS *dbproc, DBMONEY *amount, int multiplier, int addend)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Multiply a DBMONEY value by a positive integer, and add an amount. <a href="a00279.html#ga5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga1">dbmnysub</a> (DBPROCESS *dbproc, DBMONEY *m1, DBMONEY *m2, DBMONEY *difference)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Subtract two DBMONEY values. <a href="a00279.html#ga1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00279.html#ga6">dbmnyzero</a> (DBPROCESS *dbproc, DBMONEY *dest)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set a DBMONEY value to zero. <a href="a00279.html#ga6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00280.html#ga1">dbmonthname</a> (DBPROCESS *dbproc, char *language, int monthnum, DBBOOL shortform)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get name of a month, in some human language. <a href="a00280.html#ga1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga72">dbmorecmds</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">See if more commands are to be processed. <a href="a00275.html#ga72"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga83">dbmoretext</a> (DBPROCESS *dbproc, DBINT size, BYTE *text)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Send chunk of a text/image value to the server. <a href="a00275.html#ga83"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">MHANDLEFUNC </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga60">dbmsghandle</a> (MHANDLEFUNC handler)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set a message handler, for messages from the server. <a href="a00275.html#ga60"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga92">dbname</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get name of current database. <a href="a00275.html#ga92"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga16">dbnextrow</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Read result row into the row buffer and into any bound host variables. <a href="a00275.html#ga16"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga21">dbnullbind</a> (DBPROCESS *dbproc, int column, DBINT *indicator)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Tie a null-indicator to a regular result column. <a href="a00275.html#ga21"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga56">dbnumalts</a> (DBPROCESS *dbproc, int computeid)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get count of columns in a compute row. <a href="a00275.html#ga56"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga11">dbnumcols</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return number of regular columns in a result set. <a href="a00275.html#ga11"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga57">dbnumcompute</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get count of <code>COMPUTE</code> clauses for a result set. <a href="a00275.html#ga57"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00276.html#ga2">dbnumrets</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get count of output parameters filled by a stored procedure. <a href="a00276.html#ga2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga20">dbperror</a> (DBPROCESS *dbproc, DBINT msgno, long errnum,...)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Call client-installed error handler. <a href="a00281.html#ga20"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga97">dbpoll</a> (DBPROCESS *dbproc, long milliseconds, DBPROCESS **ready_dbproc, int *return_reason)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">See if a server response has arrived. <a href="a00275.html#ga97"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga39">dbprhead</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Print result set headings to stdout. <a href="a00275.html#ga39"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga36">dbprrow</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Print a result set to stdout. <a href="a00275.html#ga36"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga77">dbprtype</a> (int token)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Print a token value's name to a buffer. <a href="a00275.html#ga77"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">STATUS </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga82">dbreadtext</a> (DBPROCESS *dbproc, void *buf, DBINT bufsize)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Fetch part of a text or image value from the server. <a href="a00275.html#ga82"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga84">dbrecftos</a> (char *filename)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Record to a file all SQL commands sent to the server. <a href="a00275.html#ga84"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga90">dbregexec</a> (DBPROCESS *dbproc, DBUSMALLINT options)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Execute a registered procedure. <a href="a00275.html#ga90"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga87">dbreginit</a> (DBPROCESS *dbproc, DBCHAR *procedure_name, DBSMALLINT namelen)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Ready execution of a registered procedure. <a href="a00275.html#ga87"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga88">dbreglist</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get names of Open Server registered procedures. <a href="a00275.html#ga88"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga89">dbregparam</a> (DBPROCESS *dbproc, char *param_name, int type, DBINT datalen, BYTE *data)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Describe parameter of registered procedure . <a href="a00275.html#ga89"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga10">dbresults</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set up query results. <a href="a00275.html#ga10"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">BYTE * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00276.html#ga4">dbretdata</a> (DBPROCESS *dbproc, int retnum)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get value of an output parameter filled by a stored procedure. <a href="a00276.html#ga4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00276.html#ga5">dbretlen</a> (DBPROCESS *dbproc, int retnum)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get size of an output parameter filled by a stored procedure. <a href="a00276.html#ga5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00276.html#ga3">dbretname</a> (DBPROCESS *dbproc, int retnum)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get name of an output parameter filled by a stored procedure. <a href="a00276.html#ga3"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBINT </td><td class="memItemRight" valign="bottom"><a class="el" href="a00276.html#ga1">dbretstatus</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Fetch status value returned by query or remote procedure call. <a href="a00276.html#ga1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00276.html#ga6">dbrettype</a> (DBPROCESS *dbproc, int retnum)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get datatype of a stored procedure's return parameter. <a href="a00276.html#ga6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga7">dbrows</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Indicate whether a query returned rows. <a href="a00281.html#ga7"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">STATUS </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga12">dbrowtype</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get returned row's type. <a href="a00281.html#ga12"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga62">dbrpwclr</a> (LOGINREC *login)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Clear remote passwords from the LOGINREC structure. <a href="a00275.html#ga62"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga63">dbrpwset</a> (LOGINREC *login, char *srvname, char *password, int pwlen)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a remote password to the LOGINREC structure. <a href="a00275.html#ga63"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga76">dbsafestr</a> (DBPROCESS *dbproc, const char *src, DBINT srclen, char *dest, DBINT destlen, int quotetype)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">safely quotes character values in SQL text. <a href="a00275.html#ga76"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga93">dbservcharset</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get <code>syscharset</code> name of the server character set. <a href="a00275.html#ga93"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga19">dbsetavail</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Mark a <code>DBPROCESS</code> as "available". <a href="a00281.html#ga19"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga86">dbsetdefcharset</a> (char *charset)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the default character set. <a href="a00275.html#ga86"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga40">dbsetdeflang</a> (char *language)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the default character set for an application. <a href="a00275.html#ga40"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga20">dbsetifile</a> (char *filename)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">set name and location of the <code>interfaces</code> file FreeTDS should use to look up a servername. <a href="a00275.html#ga20"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga54">dbsetinterrupt</a> (DBPROCESS *dbproc, DB_DBCHKINTR_FUNC chkintr, DB_DBHNDLINTR_FUNC hndlintr)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set interrupt handler for db-lib to use while blocked against a read from the server. <a href="a00275.html#ga54"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga4">dbsetlbool</a> (LOGINREC *login, int value, int which)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set a boolean value in a <code>LOGINREC</code> structure. <a href="a00281.html#ga4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga2">dbsetllong</a> (LOGINREC *login, long value, int which)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set an integer value in a <code>LOGINREC</code> structure. <a href="a00281.html#ga2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga1">dbsetlname</a> (LOGINREC *login, const char *value, int which)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set the value of a string in a <code>LOGINREC</code> structure. <a href="a00281.html#ga1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga46">dbsetlogintime</a> (int seconds)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set maximum seconds db-lib waits for a server response to a login attempt. <a href="a00275.html#ga46"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga3">dbsetlshort</a> (LOGINREC *login, int value, int which)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set an integer value in a <code>LOGINREC</code> structure. <a href="a00281.html#ga3"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga3" doxytag="dblib.c::dbsetlversion"></a> RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga3">dbsetlversion</a> (LOGINREC *login, BYTE version)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set TDS version for future connections. <br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga42">dbsetmaxprocs</a> (int maxprocs)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set maximum simultaneous connections db-lib will open to the server. <a href="a00275.html#ga42"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga14">dbsetnull</a> (DBPROCESS *dbproc, int bindtype, int bindlen, BYTE *bindval)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Define substitution values to be used when binding null values. <a href="a00275.html#ga14"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga53">dbsetopt</a> (DBPROCESS *dbproc, int option, const char *char_param, int int_param)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set db-lib or server option. <a href="a00275.html#ga53"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga15">dbsetrow</a> (DBPROCESS *dbproc, DBINT row)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Make a buffered row "current" without fetching it into bound variables. <a href="a00275.html#ga15"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga44">dbsettime</a> (int seconds)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Set maximum seconds db-lib waits for a server response to query. <a href="a00275.html#ga44"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga65">dbsetuserdata</a> (DBPROCESS *dbproc, BYTE *ptr)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Associate client-allocated (and defined) data with a <code>DBPROCESS</code>. <a href="a00275.html#ga65"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga67">dbsetversion</a> (DBINT version)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Specify a db-lib version level. <a href="a00275.html#ga67"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga64">dbspid</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get server process ID for a <code>DBPROCESS</code>. <a href="a00275.html#ga64"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga35">dbspr1row</a> (DBPROCESS *dbproc, char *buffer, DBINT buf_len)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Print a regular result row to a buffer. <a href="a00275.html#ga35"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBINT </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga34">dbspr1rowlen</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Determine size buffer required to hold the results returned by <a class="el" href="a00275.html#ga38">dbsprhead()</a>, <a class="el" href="a00275.html#ga37">dbsprline()</a>, and <a class="el" href="a00275.html#ga35">dbspr1row()</a>. <a href="a00275.html#ga34"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga38">dbsprhead</a> (DBPROCESS *dbproc, char *buffer, DBINT buf_len)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Print result set headings to a buffer. <a href="a00275.html#ga38"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga37">dbsprline</a> (DBPROCESS *dbproc, char *buffer, DBINT buf_len, DBCHAR line_char)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get formatted string for underlining <a class="el" href="a00275.html#ga38">dbsprhead()</a> column names. <a href="a00275.html#ga37"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga6">dbsqlexec</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">send the SQL command to the server and wait for an answer. <a href="a00275.html#ga6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga55">dbsqlok</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Wait for results of a query from the server. <a href="a00275.html#ga55"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga94">dbsqlsend</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Transmit the command buffer to the server. <em>Non-blocking</em>, does not wait for a response. <a href="a00275.html#ga94"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga98">dbstrbuild</a> (DBPROCESS *dbproc, char *charbuf, int bufsize, char *text, char *formats,...)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Build a printable string from text containing placeholders for variables. <a href="a00275.html#ga98"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga75">dbstrcpy</a> (DBPROCESS *dbproc, int start, int numbytes, char *dest)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get a copy of a chunk of the command buffer. <a href="a00275.html#ga75"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a47" doxytag="dblib.c::dbstring_assign"></a> static RETCODE </td><td class="memItemRight" valign="bottom"><b>dbstring_assign</b> (DBSTRING **dbstrp, const char *p)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a46" doxytag="dblib.c::dbstring_concat"></a> static RETCODE </td><td class="memItemRight" valign="bottom"><b>dbstring_concat</b> (DBSTRING **dbstrp, const char *p)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a45" doxytag="dblib.c::dbstring_free"></a> static void </td><td class="memItemRight" valign="bottom"><b>dbstring_free</b> (DBSTRING **dbstrp)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a50" doxytag="dblib.c::dbstring_get"></a> static char * </td><td class="memItemRight" valign="bottom"><b>dbstring_get</b> (DBSTRING *dbstr)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a49" doxytag="dblib.c::dbstring_getchar"></a> static int </td><td class="memItemRight" valign="bottom"><b>dbstring_getchar</b> (DBSTRING *dbstr, int i)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a48" doxytag="dblib.c::dbstring_length"></a> static DBINT </td><td class="memItemRight" valign="bottom"><b>dbstring_length</b> (DBSTRING *dbstr)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga73">dbstrlen</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get size of the command buffer, in bytes. <a href="a00275.html#ga73"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga78">dbtablecolinfo</a> (DBPROCESS *dbproc, DBINT column, DBCOL *pdbcol)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">describe table column attributes with a single call (Freetds-only API function modelled on dbcolinfo) <a href="a00275.html#ga78"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga14">dbtds</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get the TDS version in use for <em>dbproc</em>. <a href="a00281.html#ga14"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBBINARY * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga80">dbtxptr</a> (DBPROCESS *dbproc, int column)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get text pointer for a column in the current row. <a href="a00275.html#ga80"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBBINARY * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga79">dbtxtimestamp</a> (DBPROCESS *dbproc, int column)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get text timestamp for a column in the current row. <a href="a00275.html#ga79"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga7">dbuse</a> (DBPROCESS *dbproc, const char *name)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Change current database. <a href="a00275.html#ga7"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBINT </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga30">dbvarylen</a> (DBPROCESS *dbproc, int column)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Determine whether a column can vary in size. <a href="a00275.html#ga30"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga85">dbversion</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">See which version of db-lib is in use. <a href="a00275.html#ga85"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBBOOL </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga24">dbwillconvert</a> (int srctype, int desttype)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Test whether or not a datatype can be converted to another datatype. <a href="a00275.html#ga24"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00275.html#ga81">dbwritetext</a> (DBPROCESS *dbproc, char *objname, DBBINARY *textptr, DBTINYINT textptrlen, DBBINARY *timestamp, DBBOOL log, DBINT size, BYTE *text)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Send text or image data to the server. <a href="a00275.html#ga81"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga10">default_err_handler</a> (DBPROCESS *dbproc, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">default error handler for db-lib (handles library-generated errors) <a href="a00281.html#ga10"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a51" doxytag="dblib.c::init_dboptions"></a> static DBOPTION * </td><td class="memItemRight" valign="bottom"><b>init_dboptions</b> (void)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a59" doxytag="dblib.c::prdbresults_state"></a> static const char * </td><td class="memItemRight" valign="bottom"><b>prdbresults_state</b> (int retcode)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a60" doxytag="dblib.c::prdbretcode"></a> static const char * </td><td class="memItemRight" valign="bottom"><b>prdbretcode</b> (int retcode)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a62" doxytag="dblib.c::prresult_type"></a> static const char * </td><td class="memItemRight" valign="bottom"><b>prresult_type</b> (int result_type)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a61" doxytag="dblib.c::prretcode"></a> static const char * </td><td class="memItemRight" valign="bottom"><b>prretcode</b> (int retcode)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a35" doxytag="dblib.c::TDS_MUTEX_DECLARE"></a> static </td><td class="memItemRight" valign="bottom"><b>TDS_MUTEX_DECLARE</b> (dblib_mutex)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a31" doxytag="dblib.c::tds_prdatatype"></a> static char * </td><td class="memItemRight" valign="bottom"><b>tds_prdatatype</b> (TDS_SERVER_TYPE datatype_token)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a25" doxytag="dblib.c::TDS_RCSID"></a> </td><td class="memItemRight" valign="bottom"><b>TDS_RCSID</b> (var,"$Id: dblib.c,v 1.320 2008/01/01 23:09:46 freddy77 Exp $")</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBPROCESS * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00281.html#ga5">tdsdbopen</a> (LOGINREC *login, const char *server, int msdblib)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Form a connection with the server. <a href="a00281.html#ga5"></a><br></td></tr> <tr><td colspan="2"><br><h2>Variables</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a3" doxytag="dblib.c::_dblib_err_handler"></a> EHANDLEFUNC </td><td class="memItemRight" valign="bottom"><b>_dblib_err_handler</b> = default_err_handler</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a2" doxytag="dblib.c::_dblib_msg_handler"></a> MHANDLEFUNC </td><td class="memItemRight" valign="bottom"><b>_dblib_msg_handler</b> = NULL</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a24" doxytag="dblib.c::dblib_error_messages"></a> static const <a class="el" href="a00133.html">DBLIB_ERROR_MESSAGE</a> </td><td class="memItemRight" valign="bottom"><b>dblib_error_messages</b> []</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static NULLREP </td><td class="memItemRight" valign="bottom"><b>default_null_representations</b> [MAXBINDTYPES]</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a1" doxytag="dblib.c::errno"></a> static int </td><td class="memItemRight" valign="bottom"><b>errno</b> = 0</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a5" doxytag="dblib.c::g_dblib_ctx"></a> static <a class="el" href="a00137.html">DBLIBCONTEXT</a> </td><td class="memItemRight" valign="bottom"><b>g_dblib_ctx</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a6" doxytag="dblib.c::g_dblib_version"></a> static int </td><td class="memItemRight" valign="bottom"><b>g_dblib_version</b></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a14" doxytag="dblib.c::null_BINARY"></a> static const DBBINARY </td><td class="memItemRight" valign="bottom"><b>null_BINARY</b> = 0</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a12" doxytag="dblib.c::null_CHAR"></a> static const DBCHAR </td><td class="memItemRight" valign="bottom"><b>null_CHAR</b> = '\0'</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a15" doxytag="dblib.c::null_DATETIME"></a> static const DBDATETIME </td><td class="memItemRight" valign="bottom"><b>null_DATETIME</b> = { 0, 0 }</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a10" doxytag="dblib.c::null_FLT8"></a> static const DBFLT8 </td><td class="memItemRight" valign="bottom"><b>null_FLT8</b> = 0</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a9" doxytag="dblib.c::null_INT"></a> static const DBINT </td><td class="memItemRight" valign="bottom"><b>null_INT</b> = 0</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a17" doxytag="dblib.c::null_MONEY"></a> static const DBMONEY </td><td class="memItemRight" valign="bottom"><b>null_MONEY</b> = { 0, 0 }</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a19" doxytag="dblib.c::null_NUMERIC"></a> static const DBNUMERIC </td><td class="memItemRight" valign="bottom"><b>null_NUMERIC</b> = { 0, 0, {0} }</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a11" doxytag="dblib.c::null_REAL"></a> static const DBREAL </td><td class="memItemRight" valign="bottom"><b>null_REAL</b> = 0</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a16" doxytag="dblib.c::null_SMALLDATETIME"></a> static const DBDATETIME4 </td><td class="memItemRight" valign="bottom"><b>null_SMALLDATETIME</b> = { 0, 0 }</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a8" doxytag="dblib.c::null_SMALLINT"></a> static const DBSMALLINT </td><td class="memItemRight" valign="bottom"><b>null_SMALLINT</b> = 0</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a18" doxytag="dblib.c::null_SMALLMONEY"></a> static const DBMONEY4 </td><td class="memItemRight" valign="bottom"><b>null_SMALLMONEY</b> = {0}</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a7" doxytag="dblib.c::null_TINYINT"></a> static const DBTINYINT </td><td class="memItemRight" valign="bottom"><b>null_TINYINT</b> = 0</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a13" doxytag="dblib.c::null_VARYCHAR"></a> static const DBVARYCHAR </td><td class="memItemRight" valign="bottom"><b>null_VARYCHAR</b> = { 0, {0} }</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a21" doxytag="dblib.c::opttext"></a> static const char *const </td><td class="memItemRight" valign="bottom"><b>opttext</b> [DBNUMOPTIONS]</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a22" doxytag="dblib.c::STD_DATETIME_FMT"></a> const char </td><td class="memItemRight" valign="bottom"><b>STD_DATETIME_FMT</b> []</td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Main implementation file for <code>db-lib</code>. <p> <hr><h2>Typedef Documentation</h2> <a class="anchor" name="a4" doxytag="dblib.c::DBLIBCONTEXT"></a><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">typedef struct <a class="el" href="a00137.html">dblib_context</a> <a class="el" href="a00137.html">DBLIBCONTEXT</a> </td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> <p><b>For internal use only.</b></p> <p> <dl compact><dt><b>Remarks:</b></dt><dd>A db-lib connection has an implicit TDS context. </dd></dl> </p> </td> </tr> </table> <hr><h2>Function Documentation</h2> <a class="anchor" name="a82" doxytag="dblib.c::dbcolinfo"></a><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">RETCODE dbcolinfo </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">DBPROCESS * </td> <td class="mdname" nowrap> <em>dbproc</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>CI_TYPE </td> <td class="mdname" nowrap> <em>type</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>DBINT </td> <td class="mdname" nowrap> <em>column</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>DBINT </td> <td class="mdname" nowrap> <em>computeid</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>DBCOL * </td> <td class="mdname" nowrap> <em>pdbcol</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Get a bunch of column attributes with a single call (Microsoft-compatibility feature). <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dbproc</em> </td><td>contains all information needed by db-lib to manage communications with the server. </td></tr> <tr><td valign="top"></td><td valign="top"><em>type</em> </td><td>must be CI_REGULAR or CI_ALTERNATE (CI_CURSOR is defined by the vendor, but is not yet implemented). </td></tr> <tr><td valign="top"></td><td valign="top"><em>column</em> </td><td>Nth in the result set, starting from 1. </td></tr> <tr><td valign="top"></td><td valign="top"><em>computeid</em> </td><td>(ignored) </td></tr> <tr><td valign="top"></td><td valign="top"><em>pdbcol</em> </td><td>address of structure to be populated by this function. </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>SUCCEED or FAIL. </dd></dl> <dl compact><dt><b>See also:</b></dt><dd>dbcolbrowse(), dbqual(), dbtabbrowse(), dbtabcount(), dbtabname(), dbtabsource(), dbtsnewlen(), dbtsnewval(), dbtsput(). </dd></dl> <dl compact><dt><b><a class="el" href="todo.html#_todo000015">Todo:</a></b></dt><dd>Support cursor rows. </dd></dl> </td> </tr> </table> <a class="anchor" name="a34" doxytag="dblib.c::dbgetnull"></a><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">static RETCODE dbgetnull </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">DBPROCESS * </td> <td class="mdname" nowrap> <em>dbproc</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>bindtype</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>varlen</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>BYTE * </td> <td class="mdname" nowrap> <em>varaddr</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"><code> [static]</code></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> <p><b>For internal use only.</b></p> <p> <a class="el" href="a00275.html#ga19">dbbind()</a> says: "Note that if varlen is 0, no padding takes place" <a class="el" href="a00195.html#a34">dbgetnull()</a> will not pad varaddr unless varlen is positive. Vartype Program Type Padding Terminator ------------------- -------------- -------------- ---------- CHARBIND DBCHAR blanks none STRINGBIND DBCHAR blanks NTBSTRINGBIND DBCHAR none VARYCHARBIND DBVARYCHAR none none BOUNDARYBIND DBCHAR none SENSITIVITYBIND DBCHAR none </p> </td> </tr> </table> <hr><h2>Variable Documentation</h2> <a class="anchor" name="a20" doxytag="dblib.c::default_null_representations"></a><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">NULLREP default_null_representations[MAXBINDTYPES]<code> [static]</code> </td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> <b>Initial value:</b><div class="fragment"><pre class="fragment"> { { NULL, 0 } , { NULL, 0 } , { (BYTE*) &null_CHAR, <span class="keyword">sizeof</span>(null_CHAR) } , { (BYTE*) &null_VARYCHAR, <span class="keyword">sizeof</span>(null_VARYCHAR) } , { &null_BINARY, <span class="keyword">sizeof</span>(null_BINARY) } , { NULL, 0 } , { &null_TINYINT, <span class="keyword">sizeof</span>(null_TINYINT) } , { (BYTE*) &null_SMALLINT, <span class="keyword">sizeof</span>(null_SMALLINT) } , { (BYTE*) &null_INT, <span class="keyword">sizeof</span>(null_INT) } , { (BYTE*) &null_FLT8, <span class="keyword">sizeof</span>(null_FLT8) } , { (BYTE*) &null_REAL, <span class="keyword">sizeof</span>(null_REAL) } , { (BYTE*) &null_DATETIME, <span class="keyword">sizeof</span>(null_DATETIME) } , { (BYTE*) &null_SMALLDATETIME, <span class="keyword">sizeof</span>(null_SMALLDATETIME) } , { (BYTE*) &null_MONEY, <span class="keyword">sizeof</span>(null_MONEY) } , { (BYTE*) &null_SMALLMONEY, <span class="keyword">sizeof</span>(null_SMALLMONEY) } , { NULL, 0 } , { &null_BIT, <span class="keyword">sizeof</span>(null_BIT) } , { (BYTE*) &null_NUMERIC, <span class="keyword">sizeof</span>(null_NUMERIC) } , { (BYTE*) &null_NUMERIC, <span class="keyword">sizeof</span>(null_NUMERIC) } } </pre></div> </td> </tr> </table> <hr size="1"><address style="align: right;"><small>Generated on Wed May 7 19:22:10 2008 for FreeTDS API by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address> </body> </html>