Sophie

Sophie

distrib > Mandriva > current > i586 > media > main-updates > by-pkgid > 7c859c6f61469ed11e2ab179848b0178 > files > 160

libapr-util-devel-1.4.1-0.1mdv2010.2.i586.rpm

<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Apache Portable Runtime Utility Library: DBD routines</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.3 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <img id="MSearchSelect" src="search/search.png"
             onmouseover="return searchBox.OnSearchSelectShow()"
             onmouseout="return searchBox.OnSearchSelectHide()"
             alt=""/>
        <input type="text" id="MSearchField" value="Search" accesskey="S"
             onfocus="searchBox.OnSearchFieldFocus(true)" 
             onblur="searchBox.OnSearchFieldFocus(false)" 
             onkeyup="searchBox.OnSearchFieldChange(event)"/>
        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
        </div>
      </li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>DBD routines<br/>
<small>
[<a class="el" href="group___a_p_r___util.html">APR Utility Functions</a>]</small>
</h1><table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#gaff6a26fb3b384bcb3a9172676c53590b">APR_DBD_TRANSACTION_COMMIT</a>&nbsp;&nbsp;&nbsp;0x00</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga60a8749e5172b692fd2e356b48ec922b">APR_DBD_TRANSACTION_ROLLBACK</a>&nbsp;&nbsp;&nbsp;0x01</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#gad9dc523b0a3b8dea5b8c9b7b0c281ea2">APR_DBD_TRANSACTION_IGNORE_ERRORS</a>&nbsp;&nbsp;&nbsp;0x02</td></tr>
<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga91778287e3cd1b8ef8719ca2655e2bc8"></a><!-- doxytag: member="APR_Util_DBD::apr_dbd_driver_t" ref="ga91778287e3cd1b8ef8719ca2655e2bc8" args="" -->
typedef struct <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><b>apr_dbd_driver_t</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4738c1f6340184987fc7806522c18ab8"></a><!-- doxytag: member="APR_Util_DBD::apr_dbd_t" ref="ga4738c1f6340184987fc7806522c18ab8" args="" -->
typedef struct apr_dbd_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>apr_dbd_t</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga92eb10d7ec8fdb3a39a7d6fdfffdf8fb"></a><!-- doxytag: member="APR_Util_DBD::apr_dbd_transaction_t" ref="ga92eb10d7ec8fdb3a39a7d6fdfffdf8fb" args="" -->
typedef struct <br class="typebreak"/>
apr_dbd_transaction_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>apr_dbd_transaction_t</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga6765891011818912e1b52fef773bfce6"></a><!-- doxytag: member="APR_Util_DBD::apr_dbd_results_t" ref="ga6765891011818912e1b52fef773bfce6" args="" -->
typedef struct apr_dbd_results_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>apr_dbd_results_t</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab890e4650a1de51725142318825103a5"></a><!-- doxytag: member="APR_Util_DBD::apr_dbd_row_t" ref="gab890e4650a1de51725142318825103a5" args="" -->
typedef struct apr_dbd_row_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>apr_dbd_row_t</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1f1179c6480a2ee0134f2cb881106cd3"></a><!-- doxytag: member="APR_Util_DBD::apr_dbd_prepared_t" ref="ga1f1179c6480a2ee0134f2cb881106cd3" args="" -->
typedef struct apr_dbd_prepared_t&nbsp;</td><td class="memItemRight" valign="bottom"><b>apr_dbd_prepared_t</b></td></tr>
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga19608fa5d518a5121bee23daacc5c230">apr_dbd_type_e</a> { <br/>
&nbsp;&nbsp;<b>APR_DBD_TYPE_NONE</b>, 
<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230acc06ee0f3fe0c65b9f8265053550e4ee">APR_DBD_TYPE_TINY</a>, 
<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230aaa4f167bb26fa3e85b0d61f34713ebb6">APR_DBD_TYPE_UTINY</a>, 
<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230a0c38d32785a3cbddbe4ba692fdde16ee">APR_DBD_TYPE_SHORT</a>, 
<br/>
&nbsp;&nbsp;<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230af3518efb67af10100b92578b5c867c9c">APR_DBD_TYPE_USHORT</a>, 
<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230a4df919bac6f5b56257bfe63ed3e5968c">APR_DBD_TYPE_INT</a>, 
<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230a58b37a24a35ddf144a9132a9837ed3d3">APR_DBD_TYPE_UINT</a>, 
<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230add86aa288504ec2d4194f35a3a8ac55a">APR_DBD_TYPE_LONG</a>, 
<br/>
&nbsp;&nbsp;<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230a4186d52d5ce586cd7559a0ae8737cbb7">APR_DBD_TYPE_ULONG</a>, 
<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230a8821461a3390bd0a001e714d2180ae6c">APR_DBD_TYPE_LONGLONG</a>, 
<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230ad1907d3eb1235acfa8a971fce43711c5">APR_DBD_TYPE_ULONGLONG</a>, 
<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230a14281587071981d4e6b25de5bb747e98">APR_DBD_TYPE_FLOAT</a>, 
<br/>
&nbsp;&nbsp;<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230a77c20702c7c6566369d3ccc894eb9cd8">APR_DBD_TYPE_DOUBLE</a>, 
<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230a4c9490a29ed882c46fa738e7cddede44">APR_DBD_TYPE_STRING</a>, 
<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230ae06c20e9edcd46964dc26bb43134e0e6">APR_DBD_TYPE_TEXT</a>, 
<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230a2ad65674a89072f4582e97d0a4fad61d">APR_DBD_TYPE_TIME</a>, 
<br/>
&nbsp;&nbsp;<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230ab96a2b4b2b1fb94a7faeb01065d77835">APR_DBD_TYPE_DATE</a>, 
<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230a77bb0dd82ed396f7056ba2aaddd44265">APR_DBD_TYPE_DATETIME</a>, 
<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230a5cffb0a0cc618ab3d0c187ca176d61ad">APR_DBD_TYPE_TIMESTAMP</a>, 
<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230ae4db1948f1f1ef7651c5f01c12d1e56a">APR_DBD_TYPE_ZTIMESTAMP</a>, 
<br/>
&nbsp;&nbsp;<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230a60d6a6ab49b20a306443b7a9ad8c6f11">APR_DBD_TYPE_BLOB</a>, 
<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230adf428a7365d71eacdf24a89c202c1f72">APR_DBD_TYPE_CLOB</a>, 
<a class="el" href="group___a_p_r___util___d_b_d.html#gga19608fa5d518a5121bee23daacc5c230a706a286af4fe4a9b97ee68adc11cd6cc">APR_DBD_TYPE_NULL</a>
<br/>
 }</td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">apr_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga7969f50d38bda792cbef72136300a574">apr_dbd_init</a> (apr_pool_t *pool)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">apr_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga8ba85faccf7e8eea525812f8f2dfed25">apr_dbd_get_driver</a> (apr_pool_t *pool, const char *name, const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> **driver)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">apr_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#gabddb1fdcb2f8a5f5b83127485c78e8ae">apr_dbd_open_ex</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_pool_t *pool, const char *params, apr_dbd_t **handle, const char **error)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">apr_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#gaeff12b01f78ac78721acc4a0a318e673">apr_dbd_open</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_pool_t *pool, const char *params, apr_dbd_t **handle)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">apr_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga4abe00d844cd547cc69880fe14af4aca">apr_dbd_close</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_dbd_t *handle)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga7a14e0073a36bd97dd82baa5f20e874c">apr_dbd_name</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#gab2a238e15942e66a2b92836c392d5334">apr_dbd_native_handle</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_dbd_t *handle)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#gae3fca3b3c05f835f9849668a338d82d1">apr_dbd_check_conn</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_pool_t *pool, apr_dbd_t *handle)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#gafecb22f98684f29e579fd73eb58b1e86">apr_dbd_set_dbname</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_pool_t *pool, apr_dbd_t *handle, const char *name)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga1c401df12087d3bf1f15a9b80a8f572d">apr_dbd_transaction_start</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_transaction_t **trans)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga6f3a5d6b351cd05646c9399a64eafeb5">apr_dbd_transaction_end</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_pool_t *pool, apr_dbd_transaction_t *trans)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga2a54cfffc3a348a424002eba937b5853">apr_dbd_transaction_mode_get</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_dbd_transaction_t *trans)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#gab78c0464926311ef64882adfee2f0f42">apr_dbd_transaction_mode_set</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_dbd_transaction_t *trans, int mode)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga40dbb6bb3f3f171f3443d21f3594a66a">apr_dbd_query</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_dbd_t *handle, int *nrows, const char *statement)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga144d354a36140fade933c1ef72661004">apr_dbd_select</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_results_t **res, const char *statement, int random)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga77d1bccedee2c61dc96de6852f3a7cc4">apr_dbd_num_cols</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_dbd_results_t *res)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga2c9f511aba325f8904e69158eacd3987">apr_dbd_num_tuples</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_dbd_results_t *res)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#gad4cdc5f4e8981b93f5a467a8c8a768f1">apr_dbd_get_row</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_pool_t *pool, apr_dbd_results_t *res, apr_dbd_row_t **row, int rownum)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga1d6d3b38a0d677e3d65501074832a5b8">apr_dbd_get_entry</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_dbd_row_t *row, int col)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga8eac8897bd1211564166b08492f458d7">apr_dbd_get_name</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_dbd_results_t *res, int col)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#gaffa947c657862c2996707da339482287">apr_dbd_error</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_dbd_t *handle, int errnum)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#gab5806cd6535aaeafe8e9f79ef2cc90c9">apr_dbd_escape</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_pool_t *pool, const char *string, apr_dbd_t *handle)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#gacf21412447c4357c64d1e9200a0f5eec">apr_dbd_prepare</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_pool_t *pool, apr_dbd_t *handle, const char *query, const char *label, apr_dbd_prepared_t **statement)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga1c4b005abda896011ca414679edfe112">apr_dbd_pquery</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_pool_t *pool, apr_dbd_t *handle, int *nrows, apr_dbd_prepared_t *statement, int nargs, const char **args)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga9f9ee377c2d335f8f1a9bffe4bf7194f">apr_dbd_pselect</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_results_t **res, apr_dbd_prepared_t *statement, int random, int nargs, const char **args)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga52ad74205d0afa92098e546303b9ee4c">apr_dbd_pvquery</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_pool_t *pool, apr_dbd_t *handle, int *nrows, apr_dbd_prepared_t *statement,...)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#gafbd4dbbddfa76586f172ec0832d4fd37">apr_dbd_pvselect</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_results_t **res, apr_dbd_prepared_t *statement, int random,...)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga7933396b01b4676ae2835d1f09d9a1be">apr_dbd_pbquery</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_pool_t *pool, apr_dbd_t *handle, int *nrows, apr_dbd_prepared_t *statement, const void **args)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga19b88ed11097a2d07bef1e31619fff0a">apr_dbd_pbselect</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_results_t **res, apr_dbd_prepared_t *statement, int random, const void **args)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga27d1ca34ce4064bb14ac3cb315ba8d14">apr_dbd_pvbquery</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_pool_t *pool, apr_dbd_t *handle, int *nrows, apr_dbd_prepared_t *statement,...)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#gacfe85d56d78d5e4767684238287b700b">apr_dbd_pvbselect</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_results_t **res, apr_dbd_prepared_t *statement, int random,...)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">apr_status_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___util___d_b_d.html#ga67e57ef4eb7952df79ceaa6e92767d41">apr_dbd_datum_get</a> (const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *driver, apr_dbd_row_t *row, int col, <a class="el" href="group___a_p_r___util___d_b_d.html#ga19608fa5d518a5121bee23daacc5c230">apr_dbd_type_e</a> type, void *data)</td></tr>
</table>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="gaff6a26fb3b384bcb3a9172676c53590b"></a><!-- doxytag: member="apr_dbd.h::APR_DBD_TRANSACTION_COMMIT" ref="gaff6a26fb3b384bcb3a9172676c53590b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define APR_DBD_TRANSACTION_COMMIT&nbsp;&nbsp;&nbsp;0x00</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>commit the transaction </p>

</div>
</div>
<a class="anchor" id="gad9dc523b0a3b8dea5b8c9b7b0c281ea2"></a><!-- doxytag: member="apr_dbd.h::APR_DBD_TRANSACTION_IGNORE_ERRORS" ref="gad9dc523b0a3b8dea5b8c9b7b0c281ea2" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define APR_DBD_TRANSACTION_IGNORE_ERRORS&nbsp;&nbsp;&nbsp;0x02</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>ignore transaction errors </p>

</div>
</div>
<a class="anchor" id="ga60a8749e5172b692fd2e356b48ec922b"></a><!-- doxytag: member="apr_dbd.h::APR_DBD_TRANSACTION_ROLLBACK" ref="ga60a8749e5172b692fd2e356b48ec922b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define APR_DBD_TRANSACTION_ROLLBACK&nbsp;&nbsp;&nbsp;0x01</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>rollback the transaction </p>

</div>
</div>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="ga19608fa5d518a5121bee23daacc5c230"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_type_e" ref="ga19608fa5d518a5121bee23daacc5c230" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group___a_p_r___util___d_b_d.html#ga19608fa5d518a5121bee23daacc5c230">apr_dbd_type_e</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>Mapping of C to SQL types, used for prepared statements. </p>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>For apr_dbd_p[v]query/select functions, in and out parameters are always const char * (i.e. regular nul terminated strings). LOB types are passed with four (4) arguments: payload, length, table and column, all as const char *, where table and column are reserved for future use by Oracle. </dd>
<dd>
For apr_dbd_p[v]bquery/select functions, in and out parameters are described next to each enumeration constant and are generally native binary types or some APR data type. LOB types are passed with four (4) arguments: payload (char*), length (apr_size_t*), table (char*) and column (char*). Table and column are reserved for future use by Oracle. </dd></dl>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230acc06ee0f3fe0c65b9f8265053550e4ee"></a><!-- doxytag: member="APR_DBD_TYPE_TINY" ref="gga19608fa5d518a5121bee23daacc5c230acc06ee0f3fe0c65b9f8265053550e4ee" args="" -->APR_DBD_TYPE_TINY</em>&nbsp;</td><td>
<p>%hhd : in, out: char* </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230aaa4f167bb26fa3e85b0d61f34713ebb6"></a><!-- doxytag: member="APR_DBD_TYPE_UTINY" ref="gga19608fa5d518a5121bee23daacc5c230aaa4f167bb26fa3e85b0d61f34713ebb6" args="" -->APR_DBD_TYPE_UTINY</em>&nbsp;</td><td>
<p>%hhu : in, out: unsigned char* </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230a0c38d32785a3cbddbe4ba692fdde16ee"></a><!-- doxytag: member="APR_DBD_TYPE_SHORT" ref="gga19608fa5d518a5121bee23daacc5c230a0c38d32785a3cbddbe4ba692fdde16ee" args="" -->APR_DBD_TYPE_SHORT</em>&nbsp;</td><td>
<p>%hd : in, out: short* </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230af3518efb67af10100b92578b5c867c9c"></a><!-- doxytag: member="APR_DBD_TYPE_USHORT" ref="gga19608fa5d518a5121bee23daacc5c230af3518efb67af10100b92578b5c867c9c" args="" -->APR_DBD_TYPE_USHORT</em>&nbsp;</td><td>
<p>%hu : in, out: unsigned short* </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230a4df919bac6f5b56257bfe63ed3e5968c"></a><!-- doxytag: member="APR_DBD_TYPE_INT" ref="gga19608fa5d518a5121bee23daacc5c230a4df919bac6f5b56257bfe63ed3e5968c" args="" -->APR_DBD_TYPE_INT</em>&nbsp;</td><td>
<p>%d : in, out: int* </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230a58b37a24a35ddf144a9132a9837ed3d3"></a><!-- doxytag: member="APR_DBD_TYPE_UINT" ref="gga19608fa5d518a5121bee23daacc5c230a58b37a24a35ddf144a9132a9837ed3d3" args="" -->APR_DBD_TYPE_UINT</em>&nbsp;</td><td>
<p>%u : in, out: unsigned int* </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230add86aa288504ec2d4194f35a3a8ac55a"></a><!-- doxytag: member="APR_DBD_TYPE_LONG" ref="gga19608fa5d518a5121bee23daacc5c230add86aa288504ec2d4194f35a3a8ac55a" args="" -->APR_DBD_TYPE_LONG</em>&nbsp;</td><td>
<p>%ld : in, out: long* </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230a4186d52d5ce586cd7559a0ae8737cbb7"></a><!-- doxytag: member="APR_DBD_TYPE_ULONG" ref="gga19608fa5d518a5121bee23daacc5c230a4186d52d5ce586cd7559a0ae8737cbb7" args="" -->APR_DBD_TYPE_ULONG</em>&nbsp;</td><td>
<p>%lu : in, out: unsigned long* </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230a8821461a3390bd0a001e714d2180ae6c"></a><!-- doxytag: member="APR_DBD_TYPE_LONGLONG" ref="gga19608fa5d518a5121bee23daacc5c230a8821461a3390bd0a001e714d2180ae6c" args="" -->APR_DBD_TYPE_LONGLONG</em>&nbsp;</td><td>
<p>%lld : in, out: apr_int64_t* </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230ad1907d3eb1235acfa8a971fce43711c5"></a><!-- doxytag: member="APR_DBD_TYPE_ULONGLONG" ref="gga19608fa5d518a5121bee23daacc5c230ad1907d3eb1235acfa8a971fce43711c5" args="" -->APR_DBD_TYPE_ULONGLONG</em>&nbsp;</td><td>
<p>%llu : in, out: apr_uint64_t* </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230a14281587071981d4e6b25de5bb747e98"></a><!-- doxytag: member="APR_DBD_TYPE_FLOAT" ref="gga19608fa5d518a5121bee23daacc5c230a14281587071981d4e6b25de5bb747e98" args="" -->APR_DBD_TYPE_FLOAT</em>&nbsp;</td><td>
<p>%f : in, out: float* </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230a77c20702c7c6566369d3ccc894eb9cd8"></a><!-- doxytag: member="APR_DBD_TYPE_DOUBLE" ref="gga19608fa5d518a5121bee23daacc5c230a77c20702c7c6566369d3ccc894eb9cd8" args="" -->APR_DBD_TYPE_DOUBLE</em>&nbsp;</td><td>
<p>%lf : in, out: double* </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230a4c9490a29ed882c46fa738e7cddede44"></a><!-- doxytag: member="APR_DBD_TYPE_STRING" ref="gga19608fa5d518a5121bee23daacc5c230a4c9490a29ed882c46fa738e7cddede44" args="" -->APR_DBD_TYPE_STRING</em>&nbsp;</td><td>
<p>%s : in: char*, out: char** </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230ae06c20e9edcd46964dc26bb43134e0e6"></a><!-- doxytag: member="APR_DBD_TYPE_TEXT" ref="gga19608fa5d518a5121bee23daacc5c230ae06c20e9edcd46964dc26bb43134e0e6" args="" -->APR_DBD_TYPE_TEXT</em>&nbsp;</td><td>
<p>%pDt : in: char*, out: char** </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230a2ad65674a89072f4582e97d0a4fad61d"></a><!-- doxytag: member="APR_DBD_TYPE_TIME" ref="gga19608fa5d518a5121bee23daacc5c230a2ad65674a89072f4582e97d0a4fad61d" args="" -->APR_DBD_TYPE_TIME</em>&nbsp;</td><td>
<p>%pDi : in: char*, out: char** </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230ab96a2b4b2b1fb94a7faeb01065d77835"></a><!-- doxytag: member="APR_DBD_TYPE_DATE" ref="gga19608fa5d518a5121bee23daacc5c230ab96a2b4b2b1fb94a7faeb01065d77835" args="" -->APR_DBD_TYPE_DATE</em>&nbsp;</td><td>
<p>%pDd : in: char*, out: char** </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230a77bb0dd82ed396f7056ba2aaddd44265"></a><!-- doxytag: member="APR_DBD_TYPE_DATETIME" ref="gga19608fa5d518a5121bee23daacc5c230a77bb0dd82ed396f7056ba2aaddd44265" args="" -->APR_DBD_TYPE_DATETIME</em>&nbsp;</td><td>
<p>%pDa : in: char*, out: char** </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230a5cffb0a0cc618ab3d0c187ca176d61ad"></a><!-- doxytag: member="APR_DBD_TYPE_TIMESTAMP" ref="gga19608fa5d518a5121bee23daacc5c230a5cffb0a0cc618ab3d0c187ca176d61ad" args="" -->APR_DBD_TYPE_TIMESTAMP</em>&nbsp;</td><td>
<p>%pDs : in: char*, out: char** </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230ae4db1948f1f1ef7651c5f01c12d1e56a"></a><!-- doxytag: member="APR_DBD_TYPE_ZTIMESTAMP" ref="gga19608fa5d518a5121bee23daacc5c230ae4db1948f1f1ef7651c5f01c12d1e56a" args="" -->APR_DBD_TYPE_ZTIMESTAMP</em>&nbsp;</td><td>
<p>%pDz : in: char*, out: char** </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230a60d6a6ab49b20a306443b7a9ad8c6f11"></a><!-- doxytag: member="APR_DBD_TYPE_BLOB" ref="gga19608fa5d518a5121bee23daacc5c230a60d6a6ab49b20a306443b7a9ad8c6f11" args="" -->APR_DBD_TYPE_BLOB</em>&nbsp;</td><td>
<p>%pDb : in: char* apr_size_t* char* char*, out: apr_bucket_brigade* </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230adf428a7365d71eacdf24a89c202c1f72"></a><!-- doxytag: member="APR_DBD_TYPE_CLOB" ref="gga19608fa5d518a5121bee23daacc5c230adf428a7365d71eacdf24a89c202c1f72" args="" -->APR_DBD_TYPE_CLOB</em>&nbsp;</td><td>
<p>%pDc : in: char* apr_size_t* char* char*, out: apr_bucket_brigade* </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga19608fa5d518a5121bee23daacc5c230a706a286af4fe4a9b97ee68adc11cd6cc"></a><!-- doxytag: member="APR_DBD_TYPE_NULL" ref="gga19608fa5d518a5121bee23daacc5c230a706a286af4fe4a9b97ee68adc11cd6cc" args="" -->APR_DBD_TYPE_NULL</em>&nbsp;</td><td>
<p>%pDn : in: void*, out: void** </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="gae3fca3b3c05f835f9849668a338d82d1"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_check_conn" ref="gae3fca3b3c05f835f9849668a338d82d1" args="(const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_dbd_check_conn </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_t *&nbsp;</td>
          <td class="paramname"> <em>handle</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>check_conn: check status of a database connection</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>- working pool </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- the connection to check </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>APR_SUCCESS or error </dd></dl>

</div>
</div>
<a class="anchor" id="ga4abe00d844cd547cc69880fe14af4aca"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_close" ref="ga4abe00d844cd547cc69880fe14af4aca" args="(const apr_dbd_driver_t *driver, apr_dbd_t *handle)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">apr_status_t apr_dbd_close </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_t *&nbsp;</td>
          <td class="paramname"> <em>handle</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_close: close a connection to a backend</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- handle to close </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- driver struct. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>APR_SUCCESS for success or error status </dd></dl>

</div>
</div>
<a class="anchor" id="ga67e57ef4eb7952df79ceaa6e92767d41"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_datum_get" ref="ga67e57ef4eb7952df79ceaa6e92767d41" args="(const apr_dbd_driver_t *driver, apr_dbd_row_t *row, int col, apr_dbd_type_e type, void *data)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">apr_status_t apr_dbd_datum_get </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_row_t *&nbsp;</td>
          <td class="paramname"> <em>row</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>col</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group___a_p_r___util___d_b_d.html#ga19608fa5d518a5121bee23daacc5c230">apr_dbd_type_e</a>&nbsp;</td>
          <td class="paramname"> <em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&nbsp;</td>
          <td class="paramname"> <em>data</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_datum_get: get a binary entry from a row</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>row</em>&nbsp;</td><td>- row pointer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>col</em>&nbsp;</td><td>- entry number </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>type</em>&nbsp;</td><td>- type of data to get </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>- pointer to data, allocated by the caller </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>APR_SUCCESS on success, APR_ENOENT if data is NULL or APR_EGENERAL </dd></dl>

</div>
</div>
<a class="anchor" id="gaffa947c657862c2996707da339482287"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_error" ref="gaffa947c657862c2996707da339482287" args="(const apr_dbd_driver_t *driver, apr_dbd_t *handle, int errnum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* apr_dbd_error </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_t *&nbsp;</td>
          <td class="paramname"> <em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>errnum</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_error: get current error message (if any)</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- the connection </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>errnum</em>&nbsp;</td><td>- error code from operation that returned an error </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the database current error message, or message for errnum (implementation-dependent whether errnum is ignored) </dd></dl>

</div>
</div>
<a class="anchor" id="gab5806cd6535aaeafe8e9f79ef2cc90c9"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_escape" ref="gab5806cd6535aaeafe8e9f79ef2cc90c9" args="(const apr_dbd_driver_t *driver, apr_pool_t *pool, const char *string, apr_dbd_t *handle)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* apr_dbd_escape </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>string</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_t *&nbsp;</td>
          <td class="paramname"> <em>handle</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_escape: escape a string so it is safe for use in query/select</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>- pool to alloc the result from </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>string</em>&nbsp;</td><td>- the string to escape </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- the connection </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the escaped, safe string </dd></dl>

</div>
</div>
<a class="anchor" id="ga8ba85faccf7e8eea525812f8f2dfed25"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_get_driver" ref="ga8ba85faccf7e8eea525812f8f2dfed25" args="(apr_pool_t *pool, const char *name, const apr_dbd_driver_t **driver)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">apr_status_t apr_dbd_get_driver </td>
          <td>(</td>
          <td class="paramtype">apr_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> **&nbsp;</td>
          <td class="paramname"> <em>driver</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_get_driver: get the driver struct for a name</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>- (process) pool to register cleanup </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>- driver name </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- pointer to driver struct. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>APR_SUCCESS for success </dd>
<dd>
APR_ENOTIMPL for no driver (when DSO not enabled) </dd>
<dd>
APR_EDSOOPEN if DSO driver file can't be opened </dd>
<dd>
APR_ESYMNOTFOUND if the driver file doesn't contain a driver </dd></dl>

</div>
</div>
<a class="anchor" id="ga1d6d3b38a0d677e3d65501074832a5b8"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_get_entry" ref="ga1d6d3b38a0d677e3d65501074832a5b8" args="(const apr_dbd_driver_t *driver, apr_dbd_row_t *row, int col)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* apr_dbd_get_entry </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_row_t *&nbsp;</td>
          <td class="paramname"> <em>row</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>col</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_get_entry: get an entry from a row</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>row</em>&nbsp;</td><td>- row pointer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>col</em>&nbsp;</td><td>- entry number </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>value from the row, or NULL if col is out of bounds. </dd></dl>

</div>
</div>
<a class="anchor" id="ga8eac8897bd1211564166b08492f458d7"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_get_name" ref="ga8eac8897bd1211564166b08492f458d7" args="(const apr_dbd_driver_t *driver, apr_dbd_results_t *res, int col)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* apr_dbd_get_name </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_results_t *&nbsp;</td>
          <td class="paramname"> <em>res</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>col</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_get_name: get an entry name from a result set</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>res</em>&nbsp;</td><td>- result set pointer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>col</em>&nbsp;</td><td>- entry number </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>name of the entry, or NULL if col is out of bounds. </dd></dl>

</div>
</div>
<a class="anchor" id="gad4cdc5f4e8981b93f5a467a8c8a768f1"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_get_row" ref="gad4cdc5f4e8981b93f5a467a8c8a768f1" args="(const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_results_t *res, apr_dbd_row_t **row, int rownum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_dbd_get_row </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_results_t *&nbsp;</td>
          <td class="paramname"> <em>res</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_row_t **&nbsp;</td>
          <td class="paramname"> <em>row</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>rownum</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_get_row: get a row from a result set</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>- pool to allocate the row </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>res</em>&nbsp;</td><td>- result set pointer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>row</em>&nbsp;</td><td>- pointer to row pointer. May point to NULL on entry </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rownum</em>&nbsp;</td><td>- row number (counting from 1), or -1 for "next row". Ignored if random access is not supported. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 for success, -1 for rownum out of range or data finished </dd></dl>

</div>
</div>
<a class="anchor" id="ga7969f50d38bda792cbef72136300a574"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_init" ref="ga7969f50d38bda792cbef72136300a574" args="(apr_pool_t *pool)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">apr_status_t apr_dbd_init </td>
          <td>(</td>
          <td class="paramtype">apr_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_init: perform once-only initialisation. Call once only.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>- pool to register any shutdown cleanups, etc </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga7a14e0073a36bd97dd82baa5f20e874c"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_name" ref="ga7a14e0073a36bd97dd82baa5f20e874c" args="(const apr_dbd_driver_t *driver)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* apr_dbd_name </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_name: get the name of the driver</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>- name </dd></dl>

</div>
</div>
<a class="anchor" id="gab2a238e15942e66a2b92836c392d5334"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_native_handle" ref="gab2a238e15942e66a2b92836c392d5334" args="(const apr_dbd_driver_t *driver, apr_dbd_t *handle)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* apr_dbd_native_handle </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_t *&nbsp;</td>
          <td class="paramname"> <em>handle</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_native_handle: get native database handle of the underlying db</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- apr_dbd handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>- native handle </dd></dl>

</div>
</div>
<a class="anchor" id="ga77d1bccedee2c61dc96de6852f3a7cc4"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_num_cols" ref="ga77d1bccedee2c61dc96de6852f3a7cc4" args="(const apr_dbd_driver_t *driver, apr_dbd_results_t *res)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_dbd_num_cols </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_results_t *&nbsp;</td>
          <td class="paramname"> <em>res</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_num_cols: get the number of columns in a results set</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>res</em>&nbsp;</td><td>- result set. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of columns </dd></dl>

</div>
</div>
<a class="anchor" id="ga2c9f511aba325f8904e69158eacd3987"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_num_tuples" ref="ga2c9f511aba325f8904e69158eacd3987" args="(const apr_dbd_driver_t *driver, apr_dbd_results_t *res)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_dbd_num_tuples </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_results_t *&nbsp;</td>
          <td class="paramname"> <em>res</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_num_tuples: get the number of rows in a results set of a synchronous select</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>res</em>&nbsp;</td><td>- result set. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>number of rows, or -1 if the results are asynchronous </dd></dl>

</div>
</div>
<a class="anchor" id="gaeff12b01f78ac78721acc4a0a318e673"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_open" ref="gaeff12b01f78ac78721acc4a0a318e673" args="(const apr_dbd_driver_t *driver, apr_pool_t *pool, const char *params, apr_dbd_t **handle)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">apr_status_t apr_dbd_open </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>params</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_t **&nbsp;</td>
          <td class="paramname"> <em>handle</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_open: open a connection to a backend</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>- working pool </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>params</em>&nbsp;</td><td>- arguments to driver (implementation-dependent) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- pointer to handle to return </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- driver struct. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>APR_SUCCESS for success </dd>
<dd>
APR_EGENERAL if driver exists but connection failed </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="group___a_p_r___util___d_b_d.html#gabddb1fdcb2f8a5f5b83127485c78e8ae">apr_dbd_open_ex</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gabddb1fdcb2f8a5f5b83127485c78e8ae"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_open_ex" ref="gabddb1fdcb2f8a5f5b83127485c78e8ae" args="(const apr_dbd_driver_t *driver, apr_pool_t *pool, const char *params, apr_dbd_t **handle, const char **error)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">apr_status_t apr_dbd_open_ex </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>params</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_t **&nbsp;</td>
          <td class="paramname"> <em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&nbsp;</td>
          <td class="paramname"> <em>error</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_open_ex: open a connection to a backend</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>- working pool </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>params</em>&nbsp;</td><td>- arguments to driver (implementation-dependent) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- pointer to handle to return </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- driver struct. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>error</em>&nbsp;</td><td>- descriptive error. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>APR_SUCCESS for success </dd>
<dd>
APR_EGENERAL if driver exists but connection failed </dd></dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>PostgreSQL: the params is passed directly to the PQconnectdb() function (check PostgreSQL documentation for more details on the syntax). </dd>
<dd>
SQLite2: the params is split on a colon, with the first part used as the filename and second part converted to an integer and used as file mode. </dd>
<dd>
SQLite3: the params is passed directly to the sqlite3_open() function as a filename to be opened (check SQLite3 documentation for more details). </dd>
<dd>
Oracle: the params can have "user", "pass", "dbname" and "server" keys, each followed by an equal sign and a value. Such key/value pairs can be delimited by space, CR, LF, tab, semicolon, vertical bar or comma. </dd>
<dd>
MySQL: the params can have "host", "port", "user", "pass", "dbname", "sock", "flags" "fldsz", "group" and "reconnect" keys, each followed by an equal sign and a value. Such key/value pairs can be delimited by space, CR, LF, tab, semicolon, vertical bar or comma. For now, "flags" can only recognise CLIENT_FOUND_ROWS (check MySQL manual for details). The value associated with "fldsz" determines maximum amount of memory (in bytes) for each of the fields in the result set of prepared statements. By default, this value is 1 MB. The value associated with "group" determines which group from configuration file to use (see MYSQL_READ_DEFAULT_GROUP option of mysql_options() in MySQL manual). Reconnect is set to 1 by default (i.e. true). </dd>
<dd>
FreeTDS: the params can have "username", "password", "appname", "dbname", "host", "charset", "lang" and "server" keys, each followed by an equal sign and a value. </dd></dl>

</div>
</div>
<a class="anchor" id="ga7933396b01b4676ae2835d1f09d9a1be"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_pbquery" ref="ga7933396b01b4676ae2835d1f09d9a1be" args="(const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, int *nrows, apr_dbd_prepared_t *statement, const void **args)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_dbd_pbquery </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_t *&nbsp;</td>
          <td class="paramname"> <em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>nrows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_prepared_t *&nbsp;</td>
          <td class="paramname"> <em>statement</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void **&nbsp;</td>
          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_pbquery: query using a prepared statement + binary args</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>- working pool </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- the connection </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>nrows</em>&nbsp;</td><td>- number of rows affected. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>statement</em>&nbsp;</td><td>- the prepared statement to execute </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>- binary args to prepared statement </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 for success or error code </dd></dl>

</div>
</div>
<a class="anchor" id="ga19b88ed11097a2d07bef1e31619fff0a"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_pbselect" ref="ga19b88ed11097a2d07bef1e31619fff0a" args="(const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_results_t **res, apr_dbd_prepared_t *statement, int random, const void **args)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_dbd_pbselect </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_t *&nbsp;</td>
          <td class="paramname"> <em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_results_t **&nbsp;</td>
          <td class="paramname"> <em>res</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_prepared_t *&nbsp;</td>
          <td class="paramname"> <em>statement</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>random</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void **&nbsp;</td>
          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_pbselect: select using a prepared statement + binary args</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>- working pool </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- the connection </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>res</em>&nbsp;</td><td>- pointer to query results. May point to NULL on entry </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>statement</em>&nbsp;</td><td>- the prepared statement to execute </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>random</em>&nbsp;</td><td>- Whether to support random-access to results </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>- binary args to prepared statement </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 for success or error code </dd></dl>

</div>
</div>
<a class="anchor" id="ga1c4b005abda896011ca414679edfe112"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_pquery" ref="ga1c4b005abda896011ca414679edfe112" args="(const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, int *nrows, apr_dbd_prepared_t *statement, int nargs, const char **args)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_dbd_pquery </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_t *&nbsp;</td>
          <td class="paramname"> <em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>nrows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_prepared_t *&nbsp;</td>
          <td class="paramname"> <em>statement</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>nargs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&nbsp;</td>
          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_pquery: query using a prepared statement + args</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>- working pool </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- the connection </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>nrows</em>&nbsp;</td><td>- number of rows affected. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>statement</em>&nbsp;</td><td>- the prepared statement to execute </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>nargs</em>&nbsp;</td><td>- ignored (for backward compatibility only) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>- args to prepared statement </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 for success or error code </dd></dl>

</div>
</div>
<a class="anchor" id="gacf21412447c4357c64d1e9200a0f5eec"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_prepare" ref="gacf21412447c4357c64d1e9200a0f5eec" args="(const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, const char *query, const char *label, apr_dbd_prepared_t **statement)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_dbd_prepare </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_t *&nbsp;</td>
          <td class="paramname"> <em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>query</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>label</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_prepared_t **&nbsp;</td>
          <td class="paramname"> <em>statement</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_prepare: prepare a statement</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>- pool to alloc the result from </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- the connection </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>query</em>&nbsp;</td><td>- the SQL query </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>label</em>&nbsp;</td><td>- A label for the prepared statement. use NULL for temporary prepared statements (eg within a Request in httpd) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>statement</em>&nbsp;</td><td>- statement to prepare. May point to null on entry. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 for success or error code </dd></dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>To specify parameters of the prepared query, use %s, %d etc. (see below for full list) in place of database specific parameter syntax (e.g. for PostgreSQL, this would be $1, $2, for SQLite3 this would be ? etc.). For instance: "SELECT name FROM customers WHERE name=%s" would be a query that this function understands. </dd>
<dd>
Here is the full list of format specifiers that this function understands and what they map to in SQL: %hhd (TINY INT), %hhu (UNSIGNED TINY INT), %hd (SHORT), %hu (UNSIGNED SHORT), %d (INT), %u (UNSIGNED INT), %ld (LONG), %lu (UNSIGNED LONG), %lld (LONG LONG), %llu (UNSIGNED LONG LONG), %f (FLOAT, REAL), %lf (DOUBLE PRECISION), %s (VARCHAR), %pDt (TEXT), %pDi (TIME), %pDd (DATE), %pDa (DATETIME), %pDs (TIMESTAMP), %pDz (TIMESTAMP WITH TIME ZONE), %pDb (BLOB), %pDc (CLOB) and %pDn (NULL). Not all databases have support for all these types, so the underlying driver will attempt the "best match" where possible. A % followed by any letter not in the above list will be interpreted as VARCHAR (i.e. %s). </dd></dl>

</div>
</div>
<a class="anchor" id="ga9f9ee377c2d335f8f1a9bffe4bf7194f"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_pselect" ref="ga9f9ee377c2d335f8f1a9bffe4bf7194f" args="(const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_results_t **res, apr_dbd_prepared_t *statement, int random, int nargs, const char **args)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_dbd_pselect </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_t *&nbsp;</td>
          <td class="paramname"> <em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_results_t **&nbsp;</td>
          <td class="paramname"> <em>res</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_prepared_t *&nbsp;</td>
          <td class="paramname"> <em>statement</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>random</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>nargs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&nbsp;</td>
          <td class="paramname"> <em>args</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_pselect: select using a prepared statement + args</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>- working pool </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- the connection </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>res</em>&nbsp;</td><td>- pointer to query results. May point to NULL on entry </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>statement</em>&nbsp;</td><td>- the prepared statement to execute </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>random</em>&nbsp;</td><td>- Whether to support random-access to results </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>nargs</em>&nbsp;</td><td>- ignored (for backward compatibility only) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>args</em>&nbsp;</td><td>- args to prepared statement </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 for success or error code </dd></dl>

</div>
</div>
<a class="anchor" id="ga27d1ca34ce4064bb14ac3cb315ba8d14"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_pvbquery" ref="ga27d1ca34ce4064bb14ac3cb315ba8d14" args="(const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, int *nrows, apr_dbd_prepared_t *statement,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_dbd_pvbquery </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_t *&nbsp;</td>
          <td class="paramname"> <em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>nrows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_prepared_t *&nbsp;</td>
          <td class="paramname"> <em>statement</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_pvbquery: query using a prepared statement + binary args</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>- working pool </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- the connection </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>nrows</em>&nbsp;</td><td>- number of rows affected. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>statement</em>&nbsp;</td><td>- the prepared statement to execute </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>- varargs list of binary args </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 for success or error code </dd></dl>

</div>
</div>
<a class="anchor" id="gacfe85d56d78d5e4767684238287b700b"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_pvbselect" ref="gacfe85d56d78d5e4767684238287b700b" args="(const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_results_t **res, apr_dbd_prepared_t *statement, int random,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_dbd_pvbselect </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_t *&nbsp;</td>
          <td class="paramname"> <em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_results_t **&nbsp;</td>
          <td class="paramname"> <em>res</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_prepared_t *&nbsp;</td>
          <td class="paramname"> <em>statement</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>random</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_pvbselect: select using a prepared statement + binary args</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>- working pool </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- the connection </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>res</em>&nbsp;</td><td>- pointer to query results. May point to NULL on entry </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>statement</em>&nbsp;</td><td>- the prepared statement to execute </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>random</em>&nbsp;</td><td>- Whether to support random-access to results </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>- varargs list of binary args </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 for success or error code </dd></dl>

</div>
</div>
<a class="anchor" id="ga52ad74205d0afa92098e546303b9ee4c"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_pvquery" ref="ga52ad74205d0afa92098e546303b9ee4c" args="(const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, int *nrows, apr_dbd_prepared_t *statement,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_dbd_pvquery </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_t *&nbsp;</td>
          <td class="paramname"> <em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>nrows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_prepared_t *&nbsp;</td>
          <td class="paramname"> <em>statement</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_pvquery: query using a prepared statement + args</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>- working pool </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- the connection </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>nrows</em>&nbsp;</td><td>- number of rows affected. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>statement</em>&nbsp;</td><td>- the prepared statement to execute </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>- varargs list </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 for success or error code </dd></dl>

</div>
</div>
<a class="anchor" id="gafbd4dbbddfa76586f172ec0832d4fd37"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_pvselect" ref="gafbd4dbbddfa76586f172ec0832d4fd37" args="(const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_results_t **res, apr_dbd_prepared_t *statement, int random,...)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_dbd_pvselect </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_t *&nbsp;</td>
          <td class="paramname"> <em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_results_t **&nbsp;</td>
          <td class="paramname"> <em>res</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_prepared_t *&nbsp;</td>
          <td class="paramname"> <em>statement</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>random</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&nbsp;</td>
          <td class="paramname"> <em>...</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_pvselect: select using a prepared statement + args</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>- working pool </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- the connection </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>res</em>&nbsp;</td><td>- pointer to query results. May point to NULL on entry </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>statement</em>&nbsp;</td><td>- the prepared statement to execute </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>random</em>&nbsp;</td><td>- Whether to support random-access to results </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>...</em>&nbsp;</td><td>- varargs list </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 for success or error code </dd></dl>

</div>
</div>
<a class="anchor" id="ga40dbb6bb3f3f171f3443d21f3594a66a"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_query" ref="ga40dbb6bb3f3f171f3443d21f3594a66a" args="(const apr_dbd_driver_t *driver, apr_dbd_t *handle, int *nrows, const char *statement)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_dbd_query </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_t *&nbsp;</td>
          <td class="paramname"> <em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&nbsp;</td>
          <td class="paramname"> <em>nrows</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>statement</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_query: execute an SQL query that doesn't return a result set</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- the connection </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>nrows</em>&nbsp;</td><td>- number of rows affected. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>statement</em>&nbsp;</td><td>- the SQL statement to execute </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 for success or error code </dd></dl>

</div>
</div>
<a class="anchor" id="ga144d354a36140fade933c1ef72661004"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_select" ref="ga144d354a36140fade933c1ef72661004" args="(const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_results_t **res, const char *statement, int random)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_dbd_select </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_t *&nbsp;</td>
          <td class="paramname"> <em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_results_t **&nbsp;</td>
          <td class="paramname"> <em>res</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>statement</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>random</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_select: execute an SQL query that returns a result set</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>- pool to allocate the result set </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- the connection </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>res</em>&nbsp;</td><td>- pointer to result set pointer. May point to NULL on entry </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>statement</em>&nbsp;</td><td>- the SQL statement to execute </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>random</em>&nbsp;</td><td>- 1 to support random access to results (seek any row); 0 to support only looping through results in order (async access - faster) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 for success or error code </dd></dl>

</div>
</div>
<a class="anchor" id="gafecb22f98684f29e579fd73eb58b1e86"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_set_dbname" ref="gafecb22f98684f29e579fd73eb58b1e86" args="(const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, const char *name)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_dbd_set_dbname </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_t *&nbsp;</td>
          <td class="paramname"> <em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_set_dbname: select database name. May be a no-op if not supported.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>- working pool </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- the connection </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>- the database to select </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 for success or error code </dd></dl>

</div>
</div>
<a class="anchor" id="ga6f3a5d6b351cd05646c9399a64eafeb5"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_transaction_end" ref="ga6f3a5d6b351cd05646c9399a64eafeb5" args="(const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_transaction_t *trans)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_dbd_transaction_end </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_transaction_t *&nbsp;</td>
          <td class="paramname"> <em>trans</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_transaction_end: end a transaction (commit on success, rollback on error). May be a no-op.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- the db connection </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>trans</em>&nbsp;</td><td>- the transaction. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 for success or error code </dd></dl>

</div>
</div>
<a class="anchor" id="ga2a54cfffc3a348a424002eba937b5853"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_transaction_mode_get" ref="ga2a54cfffc3a348a424002eba937b5853" args="(const apr_dbd_driver_t *driver, apr_dbd_transaction_t *trans)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_dbd_transaction_mode_get </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_transaction_t *&nbsp;</td>
          <td class="paramname"> <em>trans</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_transaction_mode_get: get the mode of transaction</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>trans</em>&nbsp;</td><td>- the transaction </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>mode of transaction </dd></dl>

</div>
</div>
<a class="anchor" id="gab78c0464926311ef64882adfee2f0f42"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_transaction_mode_set" ref="gab78c0464926311ef64882adfee2f0f42" args="(const apr_dbd_driver_t *driver, apr_dbd_transaction_t *trans, int mode)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_dbd_transaction_mode_set </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_transaction_t *&nbsp;</td>
          <td class="paramname"> <em>trans</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>mode</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_transaction_mode_set: set the mode of transaction</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>trans</em>&nbsp;</td><td>- the transaction </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>mode</em>&nbsp;</td><td>- new mode of the transaction </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the mode of transaction in force after the call </dd></dl>

</div>
</div>
<a class="anchor" id="ga1c401df12087d3bf1f15a9b80a8f572d"></a><!-- doxytag: member="apr_dbd.h::apr_dbd_transaction_start" ref="ga1c401df12087d3bf1f15a9b80a8f572d" args="(const apr_dbd_driver_t *driver, apr_pool_t *pool, apr_dbd_t *handle, apr_dbd_transaction_t **trans)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int apr_dbd_transaction_start </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="structapr__dbd__driver__t.html">apr_dbd_driver_t</a> *&nbsp;</td>
          <td class="paramname"> <em>driver</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_pool_t *&nbsp;</td>
          <td class="paramname"> <em>pool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_t *&nbsp;</td>
          <td class="paramname"> <em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">apr_dbd_transaction_t **&nbsp;</td>
          <td class="paramname"> <em>trans</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<p>apr_dbd_transaction_start: start a transaction. May be a no-op.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>driver</em>&nbsp;</td><td>- the driver </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>pool</em>&nbsp;</td><td>- a pool to use for error messages (if any). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>handle</em>&nbsp;</td><td>- the db connection </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>trans</em>&nbsp;</td><td>- ptr to a transaction. May be null on entry </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>0 for success or error code </dd></dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>Note that transaction modes, set by calling <a class="el" href="group___a_p_r___util___d_b_d.html#gab78c0464926311ef64882adfee2f0f42">apr_dbd_transaction_mode_set()</a>, will affect all query/select calls within a transaction. By default, any error in query/select during a transaction will cause the transaction to inherit the error code and any further query/select calls will fail immediately. Put transaction in "ignore
  errors" mode to avoid that. Use "rollback" mode to do explicit rollback. </dd></dl>

</div>
</div>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&nbsp;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr class="footer"/><address style="text-align: right;"><small>Generated on Wed Feb 1 12:19:48 2012 for Apache Portable Runtime Utility Library by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>