"Fossies" - the Fresh Open Source Software Archive

Member "freetds-1.1.11/doc/reference/a00545.html" (9 Jul 2019, 72531 Bytes) of package /linux/privat/freetds-1.1.11.tar.bz2:


The requested HTML page contains Doxygen generated source code documentation with SVG graphics what is currently unsuited for Fossies "automatic" (rendered) mode so that page is shown "only" as HTML source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted HTML file.

    1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    2 <html xmlns="http://www.w3.org/1999/xhtml">
    3 <head>
    4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
    5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
    6 <meta name="generator" content="Doxygen 1.8.12"/>
    7 <meta name="viewport" content="width=device-width, initial-scale=1"/>
    8 <title>FreeTDS API: Internals</title>
    9 <link href="tabs.css" rel="stylesheet" type="text/css"/>
   10 <script type="text/javascript" src="jquery.js"></script>
   11 <script type="text/javascript" src="dynsections.js"></script>
   12 <link href="search/search.css" rel="stylesheet" type="text/css"/>
   13 <script type="text/javascript" src="search/searchdata.js"></script>
   14 <script type="text/javascript" src="search/search.js"></script>
   15 <link href="doxygen.css" rel="stylesheet" type="text/css" />
   16 </head>
   17 <body>
   18 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
   19 <div id="titlearea">
   20 <table cellspacing="0" cellpadding="0">
   21  <tbody>
   22  <tr style="height: 56px;">
   23   <td id="projectalign" style="padding-left: 0.5em;">
   24    <div id="projectname">FreeTDS API
   25    </div>
   26   </td>
   27  </tr>
   28  </tbody>
   29 </table>
   30 </div>
   31 <!-- end header part -->
   32 <!-- Generated by Doxygen 1.8.12 -->
   33 <script type="text/javascript">
   34 var searchBox = new SearchBox("searchBox", "search",false,'Search');
   35 </script>
   36 <script type="text/javascript" src="menudata.js"></script>
   37 <script type="text/javascript" src="menu.js"></script>
   38 <script type="text/javascript">
   39 $(function() {
   40   initMenu('',true,false,'search.php','Search');
   41   $(document).ready(function() { init_search(); });
   42 });
   43 </script>
   44 <div id="main-nav"></div>
   45 </div><!-- top -->
   46 <!-- window showing the filter options -->
   47 <div id="MSearchSelectWindow"
   48      onmouseover="return searchBox.OnSearchSelectShow()"
   49      onmouseout="return searchBox.OnSearchSelectHide()"
   50      onkeydown="return searchBox.OnSearchSelectKey(event)">
   51 </div>
   52 
   53 <!-- iframe showing the search results (closed by default) -->
   54 <div id="MSearchResultsWindow">
   55 <iframe src="javascript:void(0)" frameborder="0" 
   56         name="MSearchResults" id="MSearchResults">
   57 </iframe>
   58 </div>
   59 
   60 <div class="header">
   61   <div class="summary">
   62 <a href="#nested-classes">Classes</a> &#124;
   63 <a href="#define-members">Macros</a> &#124;
   64 <a href="#typedef-members">Typedefs</a> &#124;
   65 <a href="#func-members">Functions</a>  </div>
   66   <div class="headertitle">
   67 <div class="title">Internals<div class="ingroups"><a class="el" href="a00538.html">The db-lib API</a></div></div>  </div>
   68 </div><!--header-->
   69 <div class="contents">
   70 
   71 <p>Functions called within <code>db-lib</code> for self-help.  
   72 <a href="#details">More...</a></p>
   73 <div class="dynheader">
   74 Collaboration diagram for Internals:</div>
   75 <div class="dyncontent">
   76 <center><table><tr><td><div class="center"><iframe scrolling="no" frameborder="0" src="a00545.svg" width="246" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
   77 </div>
   78 </td></tr></table></center>
   79 </div>
   80 <table class="memberdecls">
   81 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
   82 Classes</h2></td></tr>
   83 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00610.html">_dblib_error_message</a></td></tr>
   84 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
   85 </table><table class="memberdecls">
   86 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
   87 Macros</h2></td></tr>
   88 <tr class="memitem:gae52fc525116a3491c7e1092ad8257767"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#gae52fc525116a3491c7e1092ad8257767">DBSETLLABELED</a>(x,  y)&#160;&#160;&#160;<a class="el" href="a00545.html#ga03e850369aca6fba074da5e9da4effd7">dbsetlbool</a>((x), (y), DBSETLABELED)</td></tr>
   89 <tr class="memdesc:gae52fc525116a3491c7e1092ad8257767"><td class="mdescLeft">&#160;</td><td class="mdescRight">Alternative way to set login packet fields.  <a href="#gae52fc525116a3491c7e1092ad8257767">More...</a><br /></td></tr>
   90 <tr class="separator:gae52fc525116a3491c7e1092ad8257767"><td class="memSeparator" colspan="2">&#160;</td></tr>
   91 <tr class="memitem:ga7306859300823c120d807108a061c45a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#ga7306859300823c120d807108a061c45a">DBSETLVERSION</a>(login,  version)&#160;&#160;&#160;<a class="el" href="a00539.html#gaa22dce1ee0eb83059699c34c47d07c14">dbsetlversion</a>((login), (version))</td></tr>
   92 <tr class="memdesc:ga7306859300823c120d807108a061c45a"><td class="mdescLeft">&#160;</td><td class="mdescRight">maps to the Microsoft (lower-case) function.  <a href="#ga7306859300823c120d807108a061c45a">More...</a><br /></td></tr>
   93 <tr class="separator:ga7306859300823c120d807108a061c45a"><td class="memSeparator" colspan="2">&#160;</td></tr>
   94 </table><table class="memberdecls">
   95 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
   96 Typedefs</h2></td></tr>
   97 <tr class="memitem:ga73ccf3a130f836159e43074544f338e3"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a00610.html">_dblib_error_message</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#ga73ccf3a130f836159e43074544f338e3">DBLIB_ERROR_MESSAGE</a></td></tr>
   98 <tr class="separator:ga73ccf3a130f836159e43074544f338e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
   99 </table><table class="memberdecls">
  100 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
  101 Functions</h2></td></tr>
  102 <tr class="memitem:ga3c6f474c0662158f3100fe464bf077d9"><td class="memItemLeft" align="right" valign="top">static BYTE *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#ga3c6f474c0662158f3100fe464bf077d9">_dbcoldata</a> (<a class="el" href="a01142.html">TDSCOLUMN</a> *colinfo)</td></tr>
  103 <tr class="memdesc:ga3c6f474c0662158f3100fe464bf077d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return data from a column.  <a href="#ga3c6f474c0662158f3100fe464bf077d9">More...</a><br /></td></tr>
  104 <tr class="separator:ga3c6f474c0662158f3100fe464bf077d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  105 <tr class="memitem:gadf15185b0d417edc0bb8a6a4f0bae727"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#gadf15185b0d417edc0bb8a6a4f0bae727">_dblib_check_and_handle_interrupt</a> (void *vdbproc)</td></tr>
  106 <tr class="memdesc:gadf15185b0d417edc0bb8a6a4f0bae727"><td class="mdescLeft">&#160;</td><td class="mdescRight">check interrupts for libtds.  <a href="#gadf15185b0d417edc0bb8a6a4f0bae727">More...</a><br /></td></tr>
  107 <tr class="separator:gadf15185b0d417edc0bb8a6a4f0bae727"><td class="memSeparator" colspan="2">&#160;</td></tr>
  108 <tr class="memitem:ga196f6d67de47f34a32fcc2103ab0f416"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#ga196f6d67de47f34a32fcc2103ab0f416">dbcmdrow</a> (<a class="el" href="a00926.html">DBPROCESS</a> *dbproc)</td></tr>
  109 <tr class="memdesc:ga196f6d67de47f34a32fcc2103ab0f416"><td class="mdescLeft">&#160;</td><td class="mdescRight">See if the current command can return rows.  <a href="#ga196f6d67de47f34a32fcc2103ab0f416">More...</a><br /></td></tr>
  110 <tr class="separator:ga196f6d67de47f34a32fcc2103ab0f416"><td class="memSeparator" colspan="2">&#160;</td></tr>
  111 <tr class="memitem:ga0fc84c7073ed4876d9596c3eccac3609"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a01142.html">TDSCOLUMN</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#ga0fc84c7073ed4876d9596c3eccac3609">dbcolptr</a> (<a class="el" href="a00926.html">DBPROCESS</a> *dbproc, int column)</td></tr>
  112 <tr class="memdesc:ga0fc84c7073ed4876d9596c3eccac3609"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sanity checks for column-oriented functions.  <a href="#ga0fc84c7073ed4876d9596c3eccac3609">More...</a><br /></td></tr>
  113 <tr class="separator:ga0fc84c7073ed4876d9596c3eccac3609"><td class="memSeparator" colspan="2">&#160;</td></tr>
  114 <tr class="memitem:ga01e7fb38bece3bb07526532fa6be50e5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#ga01e7fb38bece3bb07526532fa6be50e5">dbcurcmd</a> (<a class="el" href="a00926.html">DBPROCESS</a> *dbproc)</td></tr>
  115 <tr class="memdesc:ga01e7fb38bece3bb07526532fa6be50e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get number of the row just returned.  <a href="#ga01e7fb38bece3bb07526532fa6be50e5">More...</a><br /></td></tr>
  116 <tr class="separator:ga01e7fb38bece3bb07526532fa6be50e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  117 <tr class="memitem:ga9e23a95d84192b4fc83db7544d772d16"><td class="memItemLeft" align="right" valign="top">DBINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#ga9e23a95d84192b4fc83db7544d772d16">dbcurrow</a> (<a class="el" href="a00926.html">DBPROCESS</a> *dbproc)</td></tr>
  118 <tr class="memdesc:ga9e23a95d84192b4fc83db7544d772d16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get number of the row currently being read.  <a href="#ga9e23a95d84192b4fc83db7544d772d16">More...</a><br /></td></tr>
  119 <tr class="separator:ga9e23a95d84192b4fc83db7544d772d16"><td class="memSeparator" colspan="2">&#160;</td></tr>
  120 <tr class="memitem:gaed43cb21ed54dc1a6340075d6290e4b0"><td class="memItemLeft" align="right" valign="top">DBBOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#gaed43cb21ed54dc1a6340075d6290e4b0">dbdead</a> (<a class="el" href="a00926.html">DBPROCESS</a> *dbproc)</td></tr>
  121 <tr class="memdesc:gaed43cb21ed54dc1a6340075d6290e4b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if <em>dbproc</em> is an ex-parrot.  <a href="#gaed43cb21ed54dc1a6340075d6290e4b0">More...</a><br /></td></tr>
  122 <tr class="separator:gaed43cb21ed54dc1a6340075d6290e4b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  123 <tr class="memitem:gaf40b925f3b3ba43804720dd4ae584935"><td class="memItemLeft" align="right" valign="top">DBINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#gaf40b925f3b3ba43804720dd4ae584935">dbfirstrow</a> (<a class="el" href="a00926.html">DBPROCESS</a> *dbproc)</td></tr>
  124 <tr class="memdesc:gaf40b925f3b3ba43804720dd4ae584935"><td class="mdescLeft">&#160;</td><td class="mdescRight">See if a server response has arrived.  <a href="#gaf40b925f3b3ba43804720dd4ae584935">More...</a><br /></td></tr>
  125 <tr class="separator:gaf40b925f3b3ba43804720dd4ae584935"><td class="memSeparator" colspan="2">&#160;</td></tr>
  126 <tr class="memitem:gab842baac0ec420b265d8c199cc45059d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#gab842baac0ec420b265d8c199cc45059d">dbiordesc</a> (<a class="el" href="a00926.html">DBPROCESS</a> *dbproc)</td></tr>
  127 <tr class="memdesc:gab842baac0ec420b265d8c199cc45059d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get file descriptor of the socket used by a <code>DBPROCESS</code> to read data coming from the server. (!)  <a href="#gab842baac0ec420b265d8c199cc45059d">More...</a><br /></td></tr>
  128 <tr class="separator:gab842baac0ec420b265d8c199cc45059d"><td class="memSeparator" colspan="2">&#160;</td></tr>
  129 <tr class="memitem:ga666a4d0609ee7f241deb0a62893d2cfa"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#ga666a4d0609ee7f241deb0a62893d2cfa">dbiowdesc</a> (<a class="el" href="a00926.html">DBPROCESS</a> *dbproc)</td></tr>
  130 <tr class="memdesc:ga666a4d0609ee7f241deb0a62893d2cfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get file descriptor of the socket used by a <code>DBPROCESS</code> to write data coming to the server. (!)  <a href="#ga666a4d0609ee7f241deb0a62893d2cfa">More...</a><br /></td></tr>
  131 <tr class="separator:ga666a4d0609ee7f241deb0a62893d2cfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
  132 <tr class="memitem:ga13ead146339b43b3a4d9049eb124ef4b"><td class="memItemLeft" align="right" valign="top">DBINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#ga13ead146339b43b3a4d9049eb124ef4b">dblastrow</a> (<a class="el" href="a00926.html">DBPROCESS</a> *dbproc)</td></tr>
  133 <tr class="memdesc:ga13ead146339b43b3a4d9049eb124ef4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get number of the last row in the row buffer.  <a href="#ga13ead146339b43b3a4d9049eb124ef4b">More...</a><br /></td></tr>
  134 <tr class="separator:ga13ead146339b43b3a4d9049eb124ef4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  135 <tr class="memitem:ga302a4ce6559b81808e3be51615cd1b67"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#ga302a4ce6559b81808e3be51615cd1b67">dbperror</a> (<a class="el" href="a00926.html">DBPROCESS</a> *dbproc, DBINT msgno, long errnum,...)</td></tr>
  136 <tr class="memdesc:ga302a4ce6559b81808e3be51615cd1b67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call client-installed error handler.  <a href="#ga302a4ce6559b81808e3be51615cd1b67">More...</a><br /></td></tr>
  137 <tr class="separator:ga302a4ce6559b81808e3be51615cd1b67"><td class="memSeparator" colspan="2">&#160;</td></tr>
  138 <tr class="memitem:ga4be2ab59dc7161d6b93c17202e7ae9b1"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#ga4be2ab59dc7161d6b93c17202e7ae9b1">dbrows</a> (<a class="el" href="a00926.html">DBPROCESS</a> *dbproc)</td></tr>
  139 <tr class="memdesc:ga4be2ab59dc7161d6b93c17202e7ae9b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicate whether a query returned rows.  <a href="#ga4be2ab59dc7161d6b93c17202e7ae9b1">More...</a><br /></td></tr>
  140 <tr class="separator:ga4be2ab59dc7161d6b93c17202e7ae9b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  141 <tr class="memitem:gaa2dc8c062342f76adffe53ee280b7fb4"><td class="memItemLeft" align="right" valign="top">STATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#gaa2dc8c062342f76adffe53ee280b7fb4">dbrowtype</a> (<a class="el" href="a00926.html">DBPROCESS</a> *dbproc)</td></tr>
  142 <tr class="memdesc:gaa2dc8c062342f76adffe53ee280b7fb4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get returned row's type.  <a href="#gaa2dc8c062342f76adffe53ee280b7fb4">More...</a><br /></td></tr>
  143 <tr class="separator:gaa2dc8c062342f76adffe53ee280b7fb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  144 <tr class="memitem:ga5ce245ff327a3d333280fe7b43d69ded"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#ga5ce245ff327a3d333280fe7b43d69ded">dbsetavail</a> (<a class="el" href="a00926.html">DBPROCESS</a> *dbproc)</td></tr>
  145 <tr class="memdesc:ga5ce245ff327a3d333280fe7b43d69ded"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mark a <code>DBPROCESS</code> as "available".  <a href="#ga5ce245ff327a3d333280fe7b43d69ded">More...</a><br /></td></tr>
  146 <tr class="separator:ga5ce245ff327a3d333280fe7b43d69ded"><td class="memSeparator" colspan="2">&#160;</td></tr>
  147 <tr class="memitem:ga03e850369aca6fba074da5e9da4effd7"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#ga03e850369aca6fba074da5e9da4effd7">dbsetlbool</a> (<a class="el" href="a00586.html">LOGINREC</a> *login, int value, int which)</td></tr>
  148 <tr class="memdesc:ga03e850369aca6fba074da5e9da4effd7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a boolean value in a <code><a class="el" href="a00586.html">LOGINREC</a></code> structure.  <a href="#ga03e850369aca6fba074da5e9da4effd7">More...</a><br /></td></tr>
  149 <tr class="separator:ga03e850369aca6fba074da5e9da4effd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  150 <tr class="memitem:gabdcccf4e0d093ff48c0e7048a4bfaf84"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#gabdcccf4e0d093ff48c0e7048a4bfaf84">dbsetllong</a> (<a class="el" href="a00586.html">LOGINREC</a> *login, long value, int which)</td></tr>
  151 <tr class="memdesc:gabdcccf4e0d093ff48c0e7048a4bfaf84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set an integer value in a <code><a class="el" href="a00586.html">LOGINREC</a></code> structure.  <a href="#gabdcccf4e0d093ff48c0e7048a4bfaf84">More...</a><br /></td></tr>
  152 <tr class="separator:gabdcccf4e0d093ff48c0e7048a4bfaf84"><td class="memSeparator" colspan="2">&#160;</td></tr>
  153 <tr class="memitem:gae1fc46447c4f8a9ff7f66607b8cd23b6"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#gae1fc46447c4f8a9ff7f66607b8cd23b6">dbsetlname</a> (<a class="el" href="a00586.html">LOGINREC</a> *login, const char *value, int which)</td></tr>
  154 <tr class="memdesc:gae1fc46447c4f8a9ff7f66607b8cd23b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the value of a string in a <code><a class="el" href="a00586.html">LOGINREC</a></code> structure.  <a href="#gae1fc46447c4f8a9ff7f66607b8cd23b6">More...</a><br /></td></tr>
  155 <tr class="separator:gae1fc46447c4f8a9ff7f66607b8cd23b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
  156 <tr class="memitem:ga8d765d810a40dfa01b39995a8e7406f0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#ga8d765d810a40dfa01b39995a8e7406f0">dbtds</a> (<a class="el" href="a00926.html">DBPROCESS</a> *dbproc)</td></tr>
  157 <tr class="memdesc:ga8d765d810a40dfa01b39995a8e7406f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the TDS version in use for <em>dbproc</em>.  <a href="#ga8d765d810a40dfa01b39995a8e7406f0">More...</a><br /></td></tr>
  158 <tr class="separator:ga8d765d810a40dfa01b39995a8e7406f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
  159 <tr class="memitem:gaccbc6d98d9528c48cf0254d809ca73ff"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#gaccbc6d98d9528c48cf0254d809ca73ff">default_err_handler</a> (<a class="el" href="a00926.html">DBPROCESS</a> *dbproc, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr)</td></tr>
  160 <tr class="memdesc:gaccbc6d98d9528c48cf0254d809ca73ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">default error handler for db-lib (handles library-generated errors)  <a href="#gaccbc6d98d9528c48cf0254d809ca73ff">More...</a><br /></td></tr>
  161 <tr class="separator:gaccbc6d98d9528c48cf0254d809ca73ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
  162 <tr class="memitem:ga2c99ec565452279e9a382451d89642eb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00926.html">DBPROCESS</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00545.html#ga2c99ec565452279e9a382451d89642eb">tdsdbopen</a> (<a class="el" href="a00586.html">LOGINREC</a> *login, const char *server, int msdblib)</td></tr>
  163 <tr class="memdesc:ga2c99ec565452279e9a382451d89642eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form a connection with the server.  <a href="#ga2c99ec565452279e9a382451d89642eb">More...</a><br /></td></tr>
  164 <tr class="separator:ga2c99ec565452279e9a382451d89642eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  165 </table>
  166 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  167 <p>Functions called within <code>db-lib</code> for self-help. </p>
  168 <p>These functions are of interest only to people hacking on the FreeTDS db-lib implementation. </p>
  169 <h2 class="groupheader">Macro Definition Documentation</h2>
  170 <a id="gae52fc525116a3491c7e1092ad8257767"></a>
  171 <h2 class="memtitle"><span class="permalink"><a href="#gae52fc525116a3491c7e1092ad8257767">&sect;&nbsp;</a></span>DBSETLLABELED</h2>
  172 
  173 <div class="memitem">
  174 <div class="memproto">
  175       <table class="memname">
  176         <tr>
  177           <td class="memname">DBSETLLABELED</td>
  178           <td>(</td>
  179           <td class="paramtype">&#160;</td>
  180           <td class="paramname">x, </td>
  181         </tr>
  182         <tr>
  183           <td class="paramkey"></td>
  184           <td></td>
  185           <td class="paramtype">&#160;</td>
  186           <td class="paramname">y&#160;</td>
  187         </tr>
  188         <tr>
  189           <td></td>
  190           <td>)</td>
  191           <td></td><td>&#160;&#160;&#160;<a class="el" href="a00545.html#ga03e850369aca6fba074da5e9da4effd7">dbsetlbool</a>((x), (y), DBSETLABELED)</td>
  192         </tr>
  193       </table>
  194 </div><div class="memdoc">
  195 
  196 <p>Alternative way to set login packet fields. </p>
  197 <dl class="section see"><dt>See also</dt><dd>dbsetllabeled() </dd></dl>
  198 
  199 </div>
  200 </div>
  201 <a id="ga7306859300823c120d807108a061c45a"></a>
  202 <h2 class="memtitle"><span class="permalink"><a href="#ga7306859300823c120d807108a061c45a">&sect;&nbsp;</a></span>DBSETLVERSION</h2>
  203 
  204 <div class="memitem">
  205 <div class="memproto">
  206       <table class="memname">
  207         <tr>
  208           <td class="memname">DBSETLVERSION</td>
  209           <td>(</td>
  210           <td class="paramtype">&#160;</td>
  211           <td class="paramname">login, </td>
  212         </tr>
  213         <tr>
  214           <td class="paramkey"></td>
  215           <td></td>
  216           <td class="paramtype">&#160;</td>
  217           <td class="paramname">version&#160;</td>
  218         </tr>
  219         <tr>
  220           <td></td>
  221           <td>)</td>
  222           <td></td><td>&#160;&#160;&#160;<a class="el" href="a00539.html#gaa22dce1ee0eb83059699c34c47d07c14">dbsetlversion</a>((login), (version))</td>
  223         </tr>
  224       </table>
  225 </div><div class="memdoc">
  226 
  227 <p>maps to the Microsoft (lower-case) function. </p>
  228 <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00539.html#gaa22dce1ee0eb83059699c34c47d07c14" title="Set TDS version for future connections. ">dbsetlversion()</a> </dd></dl>
  229 
  230 </div>
  231 </div>
  232 <h2 class="groupheader">Typedef Documentation</h2>
  233 <a id="ga73ccf3a130f836159e43074544f338e3"></a>
  234 <h2 class="memtitle"><span class="permalink"><a href="#ga73ccf3a130f836159e43074544f338e3">&sect;&nbsp;</a></span>DBLIB_ERROR_MESSAGE</h2>
  235 
  236 <div class="memitem">
  237 <div class="memproto">
  238       <table class="memname">
  239         <tr>
  240           <td class="memname">typedef struct <a class="el" href="a00610.html">_dblib_error_message</a>  <a class="el" href="a00545.html#ga73ccf3a130f836159e43074544f338e3">DBLIB_ERROR_MESSAGE</a></td>
  241         </tr>
  242       </table>
  243 </div><div class="memdoc">
  244 <dl class="section remark"><dt>Remarks</dt><dd>member msgno Vendor-defined message number </dd>
  245 <dd>
  246 member severity Is passed to the error handler </dd>
  247 <dd>
  248 member msgtext Text of message </dd></dl>
  249 
  250 </div>
  251 </div>
  252 <h2 class="groupheader">Function Documentation</h2>
  253 <a id="ga3c6f474c0662158f3100fe464bf077d9"></a>
  254 <h2 class="memtitle"><span class="permalink"><a href="#ga3c6f474c0662158f3100fe464bf077d9">&sect;&nbsp;</a></span>_dbcoldata()</h2>
  255 
  256 <div class="memitem">
  257 <div class="memproto">
  258 <table class="mlabels">
  259   <tr>
  260   <td class="mlabels-left">
  261       <table class="memname">
  262         <tr>
  263           <td class="memname">static BYTE * _dbcoldata </td>
  264           <td>(</td>
  265           <td class="paramtype"><a class="el" href="a01142.html">TDSCOLUMN</a> *&#160;</td>
  266           <td class="paramname"><em>colinfo</em></td><td>)</td>
  267           <td></td>
  268         </tr>
  269       </table>
  270   </td>
  271   <td class="mlabels-right">
  272 <span class="mlabels"><span class="mlabel">static</span></span>  </td>
  273   </tr>
  274 </table>
  275 </div><div class="memdoc">
  276 
  277 <p>Return data from a column. </p>
  278 <dl class="params"><dt>Parameters</dt><dd>
  279   <table class="params">
  280     <tr><td class="paramname">colinfo</td><td>contains information on a result column. </td></tr>
  281   </table>
  282   </dd>
  283 </dl>
  284 <dl class="section return"><dt>Returns</dt><dd>pointer to the data, or NULL if data are NULL </dd></dl>
  285 <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00539.html#gaee60c306a22383805a4b9caa647a1e16" title="Get address of data in a regular result column. ">dbdata()</a>, <a class="el" href="a00540.html#ga42e187003b74fec6e9ca92d410bfb9c0" title="Get value of an output parameter filled by a stored procedure. ">dbretdata()</a> </dd></dl>
  286 
  287 </div>
  288 </div>
  289 <a id="gadf15185b0d417edc0bb8a6a4f0bae727"></a>
  290 <h2 class="memtitle"><span class="permalink"><a href="#gadf15185b0d417edc0bb8a6a4f0bae727">&sect;&nbsp;</a></span>_dblib_check_and_handle_interrupt()</h2>
  291 
  292 <div class="memitem">
  293 <div class="memproto">
  294       <table class="memname">
  295         <tr>
  296           <td class="memname">int _dblib_check_and_handle_interrupt </td>
  297           <td>(</td>
  298           <td class="paramtype">void *&#160;</td>
  299           <td class="paramname"><em>vdbproc</em></td><td>)</td>
  300           <td></td>
  301         </tr>
  302       </table>
  303 </div><div class="memdoc">
  304 
  305 <p>check interrupts for libtds. </p>
  306 <dl class="params"><dt>Parameters</dt><dd>
  307   <table class="params">
  308     <tr><td class="paramname">vdbproc</td><td>a DBPROCESS pointer, contains all information needed by db-lib to manage communications with the server. </td></tr>
  309   </table>
  310   </dd>
  311 </dl>
  312 <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00539.html#ga2c7b5eec4843ea326b21f2db2ded2754" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBDEAD()</a>, <a class="el" href="a00539.html#ga335fcbe476ad0f897e4e2ce377f0a8cc" title="Set interrupt handler for db-lib to use while blocked against a read from the server. ">dbsetinterrupt()</a>. </dd></dl>
  313 
  314 </div>
  315 </div>
  316 <a id="ga196f6d67de47f34a32fcc2103ab0f416"></a>
  317 <h2 class="memtitle"><span class="permalink"><a href="#ga196f6d67de47f34a32fcc2103ab0f416">&sect;&nbsp;</a></span>dbcmdrow()</h2>
  318 
  319 <div class="memitem">
  320 <div class="memproto">
  321       <table class="memname">
  322         <tr>
  323           <td class="memname">RETCODE dbcmdrow </td>
  324           <td>(</td>
  325           <td class="paramtype"><a class="el" href="a00926.html">DBPROCESS</a> *&#160;</td>
  326           <td class="paramname"><em>dbproc</em></td><td>)</td>
  327           <td></td>
  328         </tr>
  329       </table>
  330 </div><div class="memdoc">
  331 
  332 <p>See if the current command can return rows. </p>
  333 <dl class="params"><dt>Parameters</dt><dd>
  334   <table class="params">
  335     <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  336   </table>
  337   </dd>
  338 </dl>
  339 <dl class="retval"><dt>Return values</dt><dd>
  340   <table class="retval">
  341     <tr><td class="paramname">SUCCEED</td><td>Yes, it can. </td></tr>
  342     <tr><td class="paramname">FAIL</td><td>No, it can't. </td></tr>
  343   </table>
  344   </dd>
  345 </dl>
  346 <dl class="section remark"><dt>Remarks</dt><dd>Use <a class="el" href="a00539.html#ga8b263669ce0312e52b5ea42a57a56838" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBCMDROW()</a> macro instead. </dd></dl>
  347 <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00539.html#ga8b263669ce0312e52b5ea42a57a56838" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBCMDROW()</a>, dbnextrow(), <a class="el" href="a00539.html#ga4e26d949be2c3bf71b1a33c75b11d931" title="Set up query results. ">dbresults()</a>, <a class="el" href="a00539.html#ga48d71b32c26703c810191ef916c5448c" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBROWS()</a>, <a class="el" href="a00539.html#ga6fda3f4982dda5825d13fee392e89fd9" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBROWTYPE()</a>. </dd></dl>
  348 <div class="dynheader">
  349 Here is the call graph for this function:</div>
  350 <div class="dyncontent">
  351 <div class="center"><iframe scrolling="no" frameborder="0" src="a00545_ga196f6d67de47f34a32fcc2103ab0f416_cgraph.svg" width="248" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
  352 </div>
  353 </div>
  354 
  355 </div>
  356 </div>
  357 <a id="ga0fc84c7073ed4876d9596c3eccac3609"></a>
  358 <h2 class="memtitle"><span class="permalink"><a href="#ga0fc84c7073ed4876d9596c3eccac3609">&sect;&nbsp;</a></span>dbcolptr()</h2>
  359 
  360 <div class="memitem">
  361 <div class="memproto">
  362 <table class="mlabels">
  363   <tr>
  364   <td class="mlabels-left">
  365       <table class="memname">
  366         <tr>
  367           <td class="memname">static <a class="el" href="a01142.html">TDSCOLUMN</a>* dbcolptr </td>
  368           <td>(</td>
  369           <td class="paramtype"><a class="el" href="a00926.html">DBPROCESS</a> *&#160;</td>
  370           <td class="paramname"><em>dbproc</em>, </td>
  371         </tr>
  372         <tr>
  373           <td class="paramkey"></td>
  374           <td></td>
  375           <td class="paramtype">int&#160;</td>
  376           <td class="paramname"><em>column</em>&#160;</td>
  377         </tr>
  378         <tr>
  379           <td></td>
  380           <td>)</td>
  381           <td></td><td></td>
  382         </tr>
  383       </table>
  384   </td>
  385   <td class="mlabels-right">
  386 <span class="mlabels"><span class="mlabel">static</span></span>  </td>
  387   </tr>
  388 </table>
  389 </div><div class="memdoc">
  390 
  391 <p>Sanity checks for column-oriented functions. </p>
  392 <dl class="params"><dt>Parameters</dt><dd>
  393   <table class="params">
  394     <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  395     <tr><td class="paramname">pcolinfo</td><td>address of pointer to a TDSCOLUMN structure. </td></tr>
  396   </table>
  397   </dd>
  398 </dl>
  399 <dl class="section remark"><dt>Remarks</dt><dd>Makes sure dbproc and the requested column are valid. Calls <a class="el" href="a00545.html#ga302a4ce6559b81808e3be51615cd1b67" title="Call client-installed error handler. ">dbperror()</a> if not. </dd></dl>
  400 <dl class="section return"><dt>Returns</dt><dd>appropriate error or SUCCEED </dd></dl>
  401 <div class="dynheader">
  402 Here is the call graph for this function:</div>
  403 <div class="dyncontent">
  404 <div class="center"><iframe scrolling="no" frameborder="0" src="a00545_ga0fc84c7073ed4876d9596c3eccac3609_cgraph.svg" width="207" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
  405 </div>
  406 </div>
  407 
  408 </div>
  409 </div>
  410 <a id="ga01e7fb38bece3bb07526532fa6be50e5"></a>
  411 <h2 class="memtitle"><span class="permalink"><a href="#ga01e7fb38bece3bb07526532fa6be50e5">&sect;&nbsp;</a></span>dbcurcmd()</h2>
  412 
  413 <div class="memitem">
  414 <div class="memproto">
  415       <table class="memname">
  416         <tr>
  417           <td class="memname">int dbcurcmd </td>
  418           <td>(</td>
  419           <td class="paramtype"><a class="el" href="a00926.html">DBPROCESS</a> *&#160;</td>
  420           <td class="paramname"><em>dbproc</em></td><td>)</td>
  421           <td></td>
  422         </tr>
  423       </table>
  424 </div><div class="memdoc">
  425 
  426 <p>Get number of the row just returned. </p>
  427 <dl class="params"><dt>Parameters</dt><dd>
  428   <table class="params">
  429     <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  430   </table>
  431   </dd>
  432 </dl>
  433 <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00539.html#gaf49e4b58918bfa4d4adaa14ee5bb375c" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBCURROW()</a>. </dd></dl>
  434 <dl class="todo"><dt><b><a class="el" href="a00536.html#_todo000014">Todo:</a></b></dt><dd>Unimplemented. </dd></dl>
  435 <div class="dynheader">
  436 Here is the call graph for this function:</div>
  437 <div class="dyncontent">
  438 <div class="center"><iframe scrolling="no" frameborder="0" src="a00545_ga01e7fb38bece3bb07526532fa6be50e5_cgraph.svg" width="244" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
  439 </div>
  440 </div>
  441 
  442 </div>
  443 </div>
  444 <a id="ga9e23a95d84192b4fc83db7544d772d16"></a>
  445 <h2 class="memtitle"><span class="permalink"><a href="#ga9e23a95d84192b4fc83db7544d772d16">&sect;&nbsp;</a></span>dbcurrow()</h2>
  446 
  447 <div class="memitem">
  448 <div class="memproto">
  449       <table class="memname">
  450         <tr>
  451           <td class="memname">DBINT dbcurrow </td>
  452           <td>(</td>
  453           <td class="paramtype"><a class="el" href="a00926.html">DBPROCESS</a> *&#160;</td>
  454           <td class="paramname"><em>dbproc</em></td><td>)</td>
  455           <td></td>
  456         </tr>
  457       </table>
  458 </div><div class="memdoc">
  459 
  460 <p>Get number of the row currently being read. </p>
  461 <dl class="params"><dt>Parameters</dt><dd>
  462   <table class="params">
  463     <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  464   </table>
  465   </dd>
  466 </dl>
  467 <dl class="section return"><dt>Returns</dt><dd>ostensibly the row number, or 0 if no rows have been read yet. </dd></dl>
  468 <dl class="retval"><dt>Return values</dt><dd>
  469   <table class="retval">
  470     <tr><td class="paramname">0</td><td>Always. </td></tr>
  471   </table>
  472   </dd>
  473 </dl>
  474 <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00539.html#gaf49e4b58918bfa4d4adaa14ee5bb375c" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBCURROW()</a>, <a class="el" href="a00539.html#ga01404b179a251c249aecfdae72ec6ca4" title="Clear n rows from the row buffer. ">dbclrbuf()</a>, <a class="el" href="a00539.html#ga97a6493786124215ec9fe4b4bd2d7cbb" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBFIRSTROW()</a>, <a class="el" href="a00539.html#ga60fe544491c760f8bc6c37bc7f777d70" title="Read a row from the row buffer. ">dbgetrow()</a>, <a class="el" href="a00539.html#ga10b9b26cf9a901146e9675a9e678632b" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBLASTROW()</a>, dbnextrow(), <a class="el" href="a00539.html#ga9d660d278f3f58871b4086c0e175f4c6" title="Set db-lib or server option. ">dbsetopt()</a>,. </dd></dl>
  475 <dl class="todo"><dt><b><a class="el" href="a00536.html#_todo000013">Todo:</a></b></dt><dd>Unimplemented. </dd></dl>
  476 <div class="dynheader">
  477 Here is the call graph for this function:</div>
  478 <div class="dyncontent">
  479 <div class="center"><iframe scrolling="no" frameborder="0" src="a00545_ga9e23a95d84192b4fc83db7544d772d16_cgraph.svg" width="240" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
  480 </div>
  481 </div>
  482 
  483 </div>
  484 </div>
  485 <a id="gaed43cb21ed54dc1a6340075d6290e4b0"></a>
  486 <h2 class="memtitle"><span class="permalink"><a href="#gaed43cb21ed54dc1a6340075d6290e4b0">&sect;&nbsp;</a></span>dbdead()</h2>
  487 
  488 <div class="memitem">
  489 <div class="memproto">
  490       <table class="memname">
  491         <tr>
  492           <td class="memname">DBBOOL dbdead </td>
  493           <td>(</td>
  494           <td class="paramtype"><a class="el" href="a00926.html">DBPROCESS</a> *&#160;</td>
  495           <td class="paramname"><em>dbproc</em></td><td>)</td>
  496           <td></td>
  497         </tr>
  498       </table>
  499 </div><div class="memdoc">
  500 
  501 <p>Check if <em>dbproc</em> is an ex-parrot. </p>
  502 <dl class="params"><dt>Parameters</dt><dd>
  503   <table class="params">
  504     <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  505   </table>
  506   </dd>
  507 </dl>
  508 <dl class="retval"><dt>Return values</dt><dd>
  509   <table class="retval">
  510     <tr><td class="paramname">TRUE</td><td>process has been marked <em>dead</em>. </td></tr>
  511     <tr><td class="paramname">FALSE</td><td>process is OK. </td></tr>
  512   </table>
  513   </dd>
  514 </dl>
  515 <dl class="section remark"><dt>Remarks</dt><dd><a class="el" href="a00545.html#gaed43cb21ed54dc1a6340075d6290e4b0" title="Check if dbproc is an ex-parrot. ">dbdead()</a> does not communicate with the server. Unless a previously db-lib marked <em>dbproc</em> <em>dead</em>, <a class="el" href="a00545.html#gaed43cb21ed54dc1a6340075d6290e4b0" title="Check if dbproc is an ex-parrot. ">dbdead()</a> returns <code>FALSE</code>. </dd></dl>
  516 <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00539.html#gab8209543de865f359bdb32829fa8b757" title="Set an error handler, for messages from db-lib. ">dberrhandle()</a>. </dd></dl>
  517 <div class="dynheader">
  518 Here is the call graph for this function:</div>
  519 <div class="dyncontent">
  520 <div class="center"><iframe scrolling="no" frameborder="0" src="a00545_gaed43cb21ed54dc1a6340075d6290e4b0_cgraph.svg" width="231" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
  521 </div>
  522 </div>
  523 
  524 </div>
  525 </div>
  526 <a id="gaf40b925f3b3ba43804720dd4ae584935"></a>
  527 <h2 class="memtitle"><span class="permalink"><a href="#gaf40b925f3b3ba43804720dd4ae584935">&sect;&nbsp;</a></span>dbfirstrow()</h2>
  528 
  529 <div class="memitem">
  530 <div class="memproto">
  531       <table class="memname">
  532         <tr>
  533           <td class="memname">DBINT dbfirstrow </td>
  534           <td>(</td>
  535           <td class="paramtype"><a class="el" href="a00926.html">DBPROCESS</a> *&#160;</td>
  536           <td class="paramname"><em>dbproc</em></td><td>)</td>
  537           <td></td>
  538         </tr>
  539       </table>
  540 </div><div class="memdoc">
  541 
  542 <p>See if a server response has arrived. </p>
  543 <dl class="params"><dt>Parameters</dt><dd>
  544   <table class="params">
  545     <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  546     <tr><td class="paramname">milliseconds</td><td>how long to wait for the server before returning:<ul>
  547 <li><code>0</code> return immediately.</li>
  548 <li><code>-1</code> do not return until the server responds or a system interrupt occurs. </li>
  549 </ul>
  550 </td></tr>
  551     <tr><td class="paramname">ready_dbproc</td><td><em>output:</em> DBPROCESS for which a response arrived, of <code>NULL</code>. </td></tr>
  552     <tr><td class="paramname">return_reason</td><td><em>output:</em> <ul>
  553 <li><code>DBRESULT</code> server responded.</li>
  554 <li><code>DBNOTIFICATION</code> registered procedure notification has arrived. dbpoll() the registered handler, if any, before it returns.</li>
  555 <li><code>DBTIMEOUT</code> <em>milliseconds</em> elapsed before the server responded.</li>
  556 <li><code>DBINTERRUPT</code> operating-system interrupt occurred before the server responded. </li>
  557 </ul>
  558 </td></tr>
  559   </table>
  560   </dd>
  561 </dl>
  562 <dl class="retval"><dt>Return values</dt><dd>
  563   <table class="retval">
  564     <tr><td class="paramname">SUCCEED</td><td>everything worked. </td></tr>
  565     <tr><td class="paramname">FAIL</td><td>a server connection died. </td></tr>
  566   </table>
  567   </dd>
  568 </dl>
  569 <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00539.html#ga74ac942f9b7baa49e1d7d18628321297" title="Sybase macro, maps to the internal (lower-case) function. ">DBIORDESC()</a>, DBRBUF(), <a class="el" href="a00539.html#ga4e26d949be2c3bf71b1a33c75b11d931" title="Set up query results. ">dbresults()</a>, dbreghandle(), <a class="el" href="a00539.html#gae1f50a6a2c31fda57cb481922b06841e" title="Wait for results of a query from the server. ">dbsqlok()</a>. </dd></dl>
  570 <dl class="todo"><dt><b><a class="el" href="a00536.html#_todo000016">Todo:</a></b></dt><dd>Unimplemented. </dd></dl>
  571 <p>Get number of the first row in the row buffer.</p>
  572 <dl class="params"><dt>Parameters</dt><dd>
  573   <table class="params">
  574     <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  575   </table>
  576   </dd>
  577 </dl>
  578 <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00539.html#ga97a6493786124215ec9fe4b4bd2d7cbb" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBFIRSTROW()</a>, <a class="el" href="a00539.html#ga01404b179a251c249aecfdae72ec6ca4" title="Clear n rows from the row buffer. ">dbclrbuf()</a>, <a class="el" href="a00539.html#gaf49e4b58918bfa4d4adaa14ee5bb375c" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBCURROW()</a>, <a class="el" href="a00539.html#ga60fe544491c760f8bc6c37bc7f777d70" title="Read a row from the row buffer. ">dbgetrow()</a>, <a class="el" href="a00539.html#ga10b9b26cf9a901146e9675a9e678632b" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBLASTROW()</a>, dbnextrow(), <a class="el" href="a00539.html#ga9d660d278f3f58871b4086c0e175f4c6" title="Set db-lib or server option. ">dbsetopt()</a>. </dd></dl>
  579 <div class="dynheader">
  580 Here is the call graph for this function:</div>
  581 <div class="dyncontent">
  582 <div class="center"><iframe scrolling="no" frameborder="0" src="a00545_gaf40b925f3b3ba43804720dd4ae584935_cgraph.svg" width="244" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
  583 </div>
  584 </div>
  585 
  586 </div>
  587 </div>
  588 <a id="gab842baac0ec420b265d8c199cc45059d"></a>
  589 <h2 class="memtitle"><span class="permalink"><a href="#gab842baac0ec420b265d8c199cc45059d">&sect;&nbsp;</a></span>dbiordesc()</h2>
  590 
  591 <div class="memitem">
  592 <div class="memproto">
  593       <table class="memname">
  594         <tr>
  595           <td class="memname">int dbiordesc </td>
  596           <td>(</td>
  597           <td class="paramtype"><a class="el" href="a00926.html">DBPROCESS</a> *&#160;</td>
  598           <td class="paramname"><em>dbproc</em></td><td>)</td>
  599           <td></td>
  600         </tr>
  601       </table>
  602 </div><div class="memdoc">
  603 
  604 <p>Get file descriptor of the socket used by a <code>DBPROCESS</code> to read data coming from the server. (!) </p>
  605 <dl class="params"><dt>Parameters</dt><dd>
  606   <table class="params">
  607     <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  608   </table>
  609   </dd>
  610 </dl>
  611 <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00539.html#ga87b39d9863316b4ba85654b0885d53a0" title="Append SQL to the command buffer. ">dbcmd()</a>, <a class="el" href="a00539.html#ga74ac942f9b7baa49e1d7d18628321297" title="Sybase macro, maps to the internal (lower-case) function. ">DBIORDESC()</a>, <a class="el" href="a00539.html#ga5afb13924cda059d30be36a70dcf2cd9" title="Sybase macro, maps to the internal (lower-case) function. ">DBIOWDESC()</a>, dbnextrow(), dbpoll(), DBRBUF(), <a class="el" href="a00539.html#ga4e26d949be2c3bf71b1a33c75b11d931" title="Set up query results. ">dbresults()</a>, <a class="el" href="a00539.html#gae1f50a6a2c31fda57cb481922b06841e" title="Wait for results of a query from the server. ">dbsqlok()</a>, <a class="el" href="a00539.html#gac980139b9cea03cf93e373d425991481" title="Transmit the command buffer to the server. ">dbsqlsend()</a>. </dd></dl>
  612 <div class="dynheader">
  613 Here is the call graph for this function:</div>
  614 <div class="dyncontent">
  615 <div class="center"><iframe scrolling="no" frameborder="0" src="a00545_gab842baac0ec420b265d8c199cc45059d_cgraph.svg" width="244" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
  616 </div>
  617 </div>
  618 
  619 </div>
  620 </div>
  621 <a id="ga666a4d0609ee7f241deb0a62893d2cfa"></a>
  622 <h2 class="memtitle"><span class="permalink"><a href="#ga666a4d0609ee7f241deb0a62893d2cfa">&sect;&nbsp;</a></span>dbiowdesc()</h2>
  623 
  624 <div class="memitem">
  625 <div class="memproto">
  626       <table class="memname">
  627         <tr>
  628           <td class="memname">int dbiowdesc </td>
  629           <td>(</td>
  630           <td class="paramtype"><a class="el" href="a00926.html">DBPROCESS</a> *&#160;</td>
  631           <td class="paramname"><em>dbproc</em></td><td>)</td>
  632           <td></td>
  633         </tr>
  634       </table>
  635 </div><div class="memdoc">
  636 
  637 <p>Get file descriptor of the socket used by a <code>DBPROCESS</code> to write data coming to the server. (!) </p>
  638 <dl class="params"><dt>Parameters</dt><dd>
  639   <table class="params">
  640     <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  641   </table>
  642   </dd>
  643 </dl>
  644 <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00539.html#ga87b39d9863316b4ba85654b0885d53a0" title="Append SQL to the command buffer. ">dbcmd()</a>, <a class="el" href="a00539.html#ga74ac942f9b7baa49e1d7d18628321297" title="Sybase macro, maps to the internal (lower-case) function. ">DBIORDESC()</a>, <a class="el" href="a00539.html#ga5afb13924cda059d30be36a70dcf2cd9" title="Sybase macro, maps to the internal (lower-case) function. ">DBIOWDESC()</a>, dbnextrow(), dbpoll(), DBRBUF(), <a class="el" href="a00539.html#ga4e26d949be2c3bf71b1a33c75b11d931" title="Set up query results. ">dbresults()</a>, <a class="el" href="a00539.html#gae1f50a6a2c31fda57cb481922b06841e" title="Wait for results of a query from the server. ">dbsqlok()</a>, <a class="el" href="a00539.html#gac980139b9cea03cf93e373d425991481" title="Transmit the command buffer to the server. ">dbsqlsend()</a>. </dd></dl>
  645 <div class="dynheader">
  646 Here is the call graph for this function:</div>
  647 <div class="dyncontent">
  648 <div class="center"><iframe scrolling="no" frameborder="0" src="a00545_ga666a4d0609ee7f241deb0a62893d2cfa_cgraph.svg" width="250" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
  649 </div>
  650 </div>
  651 
  652 </div>
  653 </div>
  654 <a id="ga13ead146339b43b3a4d9049eb124ef4b"></a>
  655 <h2 class="memtitle"><span class="permalink"><a href="#ga13ead146339b43b3a4d9049eb124ef4b">&sect;&nbsp;</a></span>dblastrow()</h2>
  656 
  657 <div class="memitem">
  658 <div class="memproto">
  659       <table class="memname">
  660         <tr>
  661           <td class="memname">DBINT dblastrow </td>
  662           <td>(</td>
  663           <td class="paramtype"><a class="el" href="a00926.html">DBPROCESS</a> *&#160;</td>
  664           <td class="paramname"><em>dbproc</em></td><td>)</td>
  665           <td></td>
  666         </tr>
  667       </table>
  668 </div><div class="memdoc">
  669 
  670 <p>Get number of the last row in the row buffer. </p>
  671 <dl class="params"><dt>Parameters</dt><dd>
  672   <table class="params">
  673     <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  674   </table>
  675   </dd>
  676 </dl>
  677 <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00539.html#ga10b9b26cf9a901146e9675a9e678632b" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBLASTROW()</a>, <a class="el" href="a00539.html#ga01404b179a251c249aecfdae72ec6ca4" title="Clear n rows from the row buffer. ">dbclrbuf()</a>, <a class="el" href="a00539.html#gaf49e4b58918bfa4d4adaa14ee5bb375c" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBCURROW()</a>, <a class="el" href="a00539.html#ga97a6493786124215ec9fe4b4bd2d7cbb" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBFIRSTROW()</a>, <a class="el" href="a00539.html#ga60fe544491c760f8bc6c37bc7f777d70" title="Read a row from the row buffer. ">dbgetrow()</a>, dbnextrow(), <a class="el" href="a00539.html#ga9d660d278f3f58871b4086c0e175f4c6" title="Set db-lib or server option. ">dbsetopt()</a>. </dd></dl>
  678 <div class="dynheader">
  679 Here is the call graph for this function:</div>
  680 <div class="dyncontent">
  681 <div class="center"><iframe scrolling="no" frameborder="0" src="a00545_ga13ead146339b43b3a4d9049eb124ef4b_cgraph.svg" width="244" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
  682 </div>
  683 </div>
  684 
  685 </div>
  686 </div>
  687 <a id="ga302a4ce6559b81808e3be51615cd1b67"></a>
  688 <h2 class="memtitle"><span class="permalink"><a href="#ga302a4ce6559b81808e3be51615cd1b67">&sect;&nbsp;</a></span>dbperror()</h2>
  689 
  690 <div class="memitem">
  691 <div class="memproto">
  692       <table class="memname">
  693         <tr>
  694           <td class="memname">int dbperror </td>
  695           <td>(</td>
  696           <td class="paramtype"><a class="el" href="a00926.html">DBPROCESS</a> *&#160;</td>
  697           <td class="paramname"><em>dbproc</em>, </td>
  698         </tr>
  699         <tr>
  700           <td class="paramkey"></td>
  701           <td></td>
  702           <td class="paramtype">DBINT&#160;</td>
  703           <td class="paramname"><em>msgno</em>, </td>
  704         </tr>
  705         <tr>
  706           <td class="paramkey"></td>
  707           <td></td>
  708           <td class="paramtype">long&#160;</td>
  709           <td class="paramname"><em>errnum</em>, </td>
  710         </tr>
  711         <tr>
  712           <td class="paramkey"></td>
  713           <td></td>
  714           <td class="paramtype">&#160;</td>
  715           <td class="paramname"><em>...</em>&#160;</td>
  716         </tr>
  717         <tr>
  718           <td></td>
  719           <td>)</td>
  720           <td></td><td></td>
  721         </tr>
  722       </table>
  723 </div><div class="memdoc">
  724 
  725 <p>Call client-installed error handler. </p>
  726 <dl class="params"><dt>Parameters</dt><dd>
  727   <table class="params">
  728     <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  729     <tr><td class="paramname">msgno</td><td>identifies the error message to be passed to the client's handler. </td></tr>
  730     <tr><td class="paramname">errnum</td><td>identifies the OS error (errno), if any. Use 0 if not applicable. </td></tr>
  731   </table>
  732   </dd>
  733 </dl>
  734 <dl class="section return"><dt>Returns</dt><dd>the handler's return code, subject to correction and adjustment for vendor style:<ul>
  735 <li>INT_CANCEL The db-lib function that encountered the error will return FAIL.</li>
  736 <li>INT_TIMEOUT The db-lib function will cancel the operation and return FAIL. <em>dbproc</em> remains useable.</li>
  737 <li>INT_CONTINUE The db-lib function will retry the operation. </li>
  738 </ul>
  739 </dd></dl>
  740 <dl class="section remark"><dt>Remarks</dt><dd>The client-installed handler may also return INT_EXIT. If Sybase semantics are used, this function notifies the user and calls exit(3). If Microsoft semantics are used, this function returns INT_CANCEL.</dd></dl>
  741 <p>If the client-installed handler returns something other than these four INT_* values, or returns timeout-related value for anything but SYBETIME, it's treated here as INT_EXIT (see above).</p>
  742 <p>Instead of sprinkling error text all over db-lib, we consolidate it here, where it can be translated (one day), and where it can be mapped to the TDS error number. The libraries don't use consistent error numbers or messages, so when libtds has to emit an error message, it can't include the text. It can pass its error number to a client-library function, which will interpret it, add the text, call the application's installed handler (if any) and return the handler's return code back to the caller.</p>
  743 <p>The call stack may look something like this:</p>
  744 <ol type="1">
  745 <li>application</li>
  746 <li>db-lib function (encounters error)</li>
  747 <li>dbperror</li>
  748 <li>error handler (installed by application)</li>
  749 </ol>
  750 <p>The error handling in this case is unambiguous: the caller invokes this function, the client's handler returns its instruction, which the caller receives. Quite often the caller will get INT_CANCEL, in which case it should put its house in order and return FAIL.</p>
  751 <p>The call stack may otherwise look something like this:</p>
  752 <ol type="1">
  753 <li>application</li>
  754 <li>db-lib function</li>
  755 <li>libtds function (encounters error)</li>
  756 <li>_dblib_handle_err_message</li>
  757 <li>dbperror</li>
  758 <li>error handler (installed by application)</li>
  759 </ol>
  760 <p>Because different client libraries specify their handler semantics differently, and because libtds doesn't know which client library is in charge of any given connection, it cannot interpret the raw return code from a db-lib error handler. For these reasons, libtds calls _dblib_handle_err_message, which translates between libtds and db-lib semantics. </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="a00539.html#gab8209543de865f359bdb32829fa8b757" title="Set an error handler, for messages from db-lib. ">dberrhandle()</a>, _dblib_handle_err_message(). </dd></dl>
  761 <div class="dynheader">
  762 Here is the caller graph for this function:</div>
  763 <div class="dyncontent">
  764 <div class="center"><iframe scrolling="no" frameborder="0" src="a00545_ga302a4ce6559b81808e3be51615cd1b67_icgraph.svg" width="207" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
  765 </div>
  766 </div>
  767 
  768 </div>
  769 </div>
  770 <a id="ga4be2ab59dc7161d6b93c17202e7ae9b1"></a>
  771 <h2 class="memtitle"><span class="permalink"><a href="#ga4be2ab59dc7161d6b93c17202e7ae9b1">&sect;&nbsp;</a></span>dbrows()</h2>
  772 
  773 <div class="memitem">
  774 <div class="memproto">
  775       <table class="memname">
  776         <tr>
  777           <td class="memname">RETCODE dbrows </td>
  778           <td>(</td>
  779           <td class="paramtype"><a class="el" href="a00926.html">DBPROCESS</a> *&#160;</td>
  780           <td class="paramname"><em>dbproc</em></td><td>)</td>
  781           <td></td>
  782         </tr>
  783       </table>
  784 </div><div class="memdoc">
  785 
  786 <p>Indicate whether a query returned rows. </p>
  787 <dl class="params"><dt>Parameters</dt><dd>
  788   <table class="params">
  789     <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  790   </table>
  791   </dd>
  792 </dl>
  793 <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00539.html#ga48d71b32c26703c810191ef916c5448c" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBROWS()</a>, <a class="el" href="a00539.html#ga8b263669ce0312e52b5ea42a57a56838" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBCMDROW()</a>, dbnextrow(), <a class="el" href="a00539.html#ga4e26d949be2c3bf71b1a33c75b11d931" title="Set up query results. ">dbresults()</a>, <a class="el" href="a00539.html#ga6fda3f4982dda5825d13fee392e89fd9" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBROWTYPE()</a>. </dd></dl>
  794 <div class="dynheader">
  795 Here is the call graph for this function:</div>
  796 <div class="dyncontent">
  797 <div class="center"><iframe scrolling="no" frameborder="0" src="a00545_ga4be2ab59dc7161d6b93c17202e7ae9b1_cgraph.svg" width="228" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
  798 </div>
  799 </div>
  800 
  801 </div>
  802 </div>
  803 <a id="gaa2dc8c062342f76adffe53ee280b7fb4"></a>
  804 <h2 class="memtitle"><span class="permalink"><a href="#gaa2dc8c062342f76adffe53ee280b7fb4">&sect;&nbsp;</a></span>dbrowtype()</h2>
  805 
  806 <div class="memitem">
  807 <div class="memproto">
  808       <table class="memname">
  809         <tr>
  810           <td class="memname">STATUS dbrowtype </td>
  811           <td>(</td>
  812           <td class="paramtype"><a class="el" href="a00926.html">DBPROCESS</a> *&#160;</td>
  813           <td class="paramname"><em>dbproc</em></td><td>)</td>
  814           <td></td>
  815         </tr>
  816       </table>
  817 </div><div class="memdoc">
  818 
  819 <p>Get returned row's type. </p>
  820 <dl class="params"><dt>Parameters</dt><dd>
  821   <table class="params">
  822     <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  823   </table>
  824   </dd>
  825 </dl>
  826 <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00539.html#ga6fda3f4982dda5825d13fee392e89fd9" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBROWTYPE()</a>. </dd></dl>
  827 <div class="dynheader">
  828 Here is the call graph for this function:</div>
  829 <div class="dyncontent">
  830 <div class="center"><iframe scrolling="no" frameborder="0" src="a00545_gaa2dc8c062342f76adffe53ee280b7fb4_cgraph.svg" width="248" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
  831 </div>
  832 </div>
  833 
  834 </div>
  835 </div>
  836 <a id="ga5ce245ff327a3d333280fe7b43d69ded"></a>
  837 <h2 class="memtitle"><span class="permalink"><a href="#ga5ce245ff327a3d333280fe7b43d69ded">&sect;&nbsp;</a></span>dbsetavail()</h2>
  838 
  839 <div class="memitem">
  840 <div class="memproto">
  841       <table class="memname">
  842         <tr>
  843           <td class="memname">void dbsetavail </td>
  844           <td>(</td>
  845           <td class="paramtype"><a class="el" href="a00926.html">DBPROCESS</a> *&#160;</td>
  846           <td class="paramname"><em>dbproc</em></td><td>)</td>
  847           <td></td>
  848         </tr>
  849       </table>
  850 </div><div class="memdoc">
  851 
  852 <p>Mark a <code>DBPROCESS</code> as "available". </p>
  853 <dl class="params"><dt>Parameters</dt><dd>
  854   <table class="params">
  855     <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  856   </table>
  857   </dd>
  858 </dl>
  859 <dl class="section remark"><dt>Remarks</dt><dd>Basically bogus. <code>FreeTDS</code> behaves the way Sybase's implementation does, but so what? Many <code>db-lib</code> functions set the <code>DBPROCESS</code> to "not available", but only <a class="el" href="a00545.html#ga5ce245ff327a3d333280fe7b43d69ded" title="Mark a DBPROCESS as &quot;available&quot;. ">dbsetavail()</a> resets it to "available". </dd></dl>
  860 <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00539.html#ga40f6c951a851744e58ee715c652a8ac8" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBISAVAIL()</a>. DBSETAVAIL(). </dd></dl>
  861 <div class="dynheader">
  862 Here is the call graph for this function:</div>
  863 <div class="dyncontent">
  864 <div class="center"><iframe scrolling="no" frameborder="0" src="a00545_ga5ce245ff327a3d333280fe7b43d69ded_cgraph.svg" width="247" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
  865 </div>
  866 </div>
  867 
  868 </div>
  869 </div>
  870 <a id="ga03e850369aca6fba074da5e9da4effd7"></a>
  871 <h2 class="memtitle"><span class="permalink"><a href="#ga03e850369aca6fba074da5e9da4effd7">&sect;&nbsp;</a></span>dbsetlbool()</h2>
  872 
  873 <div class="memitem">
  874 <div class="memproto">
  875       <table class="memname">
  876         <tr>
  877           <td class="memname">RETCODE dbsetlbool </td>
  878           <td>(</td>
  879           <td class="paramtype"><a class="el" href="a00586.html">LOGINREC</a> *&#160;</td>
  880           <td class="paramname"><em>login</em>, </td>
  881         </tr>
  882         <tr>
  883           <td class="paramkey"></td>
  884           <td></td>
  885           <td class="paramtype">int&#160;</td>
  886           <td class="paramname"><em>value</em>, </td>
  887         </tr>
  888         <tr>
  889           <td class="paramkey"></td>
  890           <td></td>
  891           <td class="paramtype">int&#160;</td>
  892           <td class="paramname"><em>which</em>&#160;</td>
  893         </tr>
  894         <tr>
  895           <td></td>
  896           <td>)</td>
  897           <td></td><td></td>
  898         </tr>
  899       </table>
  900 </div><div class="memdoc">
  901 
  902 <p>Set a boolean value in a <code><a class="el" href="a00586.html">LOGINREC</a></code> structure. </p>
  903 <p>Called by various macros to populate <em>login</em>. </p><dl class="params"><dt>Parameters</dt><dd>
  904   <table class="params">
  905     <tr><td class="paramname">login</td><td>the <code>LOGINREC*</code> to modify. </td></tr>
  906     <tr><td class="paramname">value</td><td>the value to set it to. </td></tr>
  907     <tr><td class="paramname">which</td><td>the field to set. </td></tr>
  908   </table>
  909   </dd>
  910 </dl>
  911 <dl class="section remark"><dt>Remarks</dt><dd>Only DBSETBCP is implemented. </dd></dl>
  912 <dl class="retval"><dt>Return values</dt><dd>
  913   <table class="retval">
  914     <tr><td class="paramname">SUCCEED</td><td>the value was set. </td></tr>
  915     <tr><td class="paramname">FAIL</td><td>invalid value passed for <em>which</em>. </td></tr>
  916   </table>
  917   </dd>
  918 </dl>
  919 <dl class="todo"><dt><b><a class="el" href="a00536.html#_todo000004">Todo:</a></b></dt><dd>DBSETNOSHORT, DBSETENCRYPT, DBSETLABELED </dd></dl>
  920 <div class="dynheader">
  921 Here is the call graph for this function:</div>
  922 <div class="dyncontent">
  923 <div class="center"><iframe scrolling="no" frameborder="0" src="a00545_ga03e850369aca6fba074da5e9da4effd7_cgraph.svg" width="247" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
  924 </div>
  925 </div>
  926 
  927 </div>
  928 </div>
  929 <a id="gabdcccf4e0d093ff48c0e7048a4bfaf84"></a>
  930 <h2 class="memtitle"><span class="permalink"><a href="#gabdcccf4e0d093ff48c0e7048a4bfaf84">&sect;&nbsp;</a></span>dbsetllong()</h2>
  931 
  932 <div class="memitem">
  933 <div class="memproto">
  934       <table class="memname">
  935         <tr>
  936           <td class="memname">RETCODE dbsetllong </td>
  937           <td>(</td>
  938           <td class="paramtype"><a class="el" href="a00586.html">LOGINREC</a> *&#160;</td>
  939           <td class="paramname"><em>login</em>, </td>
  940         </tr>
  941         <tr>
  942           <td class="paramkey"></td>
  943           <td></td>
  944           <td class="paramtype">long&#160;</td>
  945           <td class="paramname"><em>value</em>, </td>
  946         </tr>
  947         <tr>
  948           <td class="paramkey"></td>
  949           <td></td>
  950           <td class="paramtype">int&#160;</td>
  951           <td class="paramname"><em>which</em>&#160;</td>
  952         </tr>
  953         <tr>
  954           <td></td>
  955           <td>)</td>
  956           <td></td><td></td>
  957         </tr>
  958       </table>
  959 </div><div class="memdoc">
  960 
  961 <p>Set an integer value in a <code><a class="el" href="a00586.html">LOGINREC</a></code> structure. </p>
  962 <p>Called by various macros to populate <em>login</em>. </p><dl class="params"><dt>Parameters</dt><dd>
  963   <table class="params">
  964     <tr><td class="paramname">login</td><td>the <code>LOGINREC*</code> to modify. </td></tr>
  965     <tr><td class="paramname">value</td><td>the value to set it to. </td></tr>
  966     <tr><td class="paramname">which</td><td>the field to set. </td></tr>
  967   </table>
  968   </dd>
  969 </dl>
  970 <dl class="retval"><dt>Return values</dt><dd>
  971   <table class="retval">
  972     <tr><td class="paramname">SUCCEED</td><td>the value was set. </td></tr>
  973     <tr><td class="paramname">FAIL</td><td>anything other than <code>DBSETPACKET</code> was passed for <em>which</em>. </td></tr>
  974   </table>
  975   </dd>
  976 </dl>
  977 <div class="dynheader">
  978 Here is the call graph for this function:</div>
  979 <div class="dyncontent">
  980 <div class="center"><iframe scrolling="no" frameborder="0" src="a00545_gabdcccf4e0d093ff48c0e7048a4bfaf84_cgraph.svg" width="248" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
  981 </div>
  982 </div>
  983 
  984 </div>
  985 </div>
  986 <a id="gae1fc46447c4f8a9ff7f66607b8cd23b6"></a>
  987 <h2 class="memtitle"><span class="permalink"><a href="#gae1fc46447c4f8a9ff7f66607b8cd23b6">&sect;&nbsp;</a></span>dbsetlname()</h2>
  988 
  989 <div class="memitem">
  990 <div class="memproto">
  991       <table class="memname">
  992         <tr>
  993           <td class="memname">RETCODE dbsetlname </td>
  994           <td>(</td>
  995           <td class="paramtype"><a class="el" href="a00586.html">LOGINREC</a> *&#160;</td>
  996           <td class="paramname"><em>login</em>, </td>
  997         </tr>
  998         <tr>
  999           <td class="paramkey"></td>
 1000           <td></td>
 1001           <td class="paramtype">const char *&#160;</td>
 1002           <td class="paramname"><em>value</em>, </td>
 1003         </tr>
 1004         <tr>
 1005           <td class="paramkey"></td>
 1006           <td></td>
 1007           <td class="paramtype">int&#160;</td>
 1008           <td class="paramname"><em>which</em>&#160;</td>
 1009         </tr>
 1010         <tr>
 1011           <td></td>
 1012           <td>)</td>
 1013           <td></td><td></td>
 1014         </tr>
 1015       </table>
 1016 </div><div class="memdoc">
 1017 
 1018 <p>Set the value of a string in a <code><a class="el" href="a00586.html">LOGINREC</a></code> structure. </p>
 1019 <p>Called by various macros to populate <em>login</em>. </p><dl class="params"><dt>Parameters</dt><dd>
 1020   <table class="params">
 1021     <tr><td class="paramname">login</td><td>the <code>LOGINREC*</code> to modify. </td></tr>
 1022     <tr><td class="paramname">value</td><td>the value to set it to. </td></tr>
 1023     <tr><td class="paramname">which</td><td>the field to set. </td></tr>
 1024   </table>
 1025   </dd>
 1026 </dl>
 1027 <dl class="retval"><dt>Return values</dt><dd>
 1028   <table class="retval">
 1029     <tr><td class="paramname">SUCCEED</td><td>the value was set. </td></tr>
 1030     <tr><td class="paramname">FAIL</td><td><code>DBSETHID</code> or other invalid <em>which</em> was tried. </td></tr>
 1031   </table>
 1032   </dd>
 1033 </dl>
 1034 <div class="dynheader">
 1035 Here is the call graph for this function:</div>
 1036 <div class="dyncontent">
 1037 <div class="center"><iframe scrolling="no" frameborder="0" src="a00545_gae1fc46447c4f8a9ff7f66607b8cd23b6_cgraph.svg" width="256" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 1038 </div>
 1039 </div>
 1040 
 1041 </div>
 1042 </div>
 1043 <a id="ga8d765d810a40dfa01b39995a8e7406f0"></a>
 1044 <h2 class="memtitle"><span class="permalink"><a href="#ga8d765d810a40dfa01b39995a8e7406f0">&sect;&nbsp;</a></span>dbtds()</h2>
 1045 
 1046 <div class="memitem">
 1047 <div class="memproto">
 1048       <table class="memname">
 1049         <tr>
 1050           <td class="memname">int dbtds </td>
 1051           <td>(</td>
 1052           <td class="paramtype"><a class="el" href="a00926.html">DBPROCESS</a> *&#160;</td>
 1053           <td class="paramname"><em>dbproc</em></td><td>)</td>
 1054           <td></td>
 1055         </tr>
 1056       </table>
 1057 </div><div class="memdoc">
 1058 
 1059 <p>Get the TDS version in use for <em>dbproc</em>. </p>
 1060 <dl class="params"><dt>Parameters</dt><dd>
 1061   <table class="params">
 1062     <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
 1063   </table>
 1064   </dd>
 1065 </dl>
 1066 <dl class="section return"><dt>Returns</dt><dd>a <code>DBTDS*</code> token. </dd></dl>
 1067 <dl class="section remark"><dt>Remarks</dt><dd>The integer values of the constants are counterintuitive. </dd></dl>
 1068 <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00539.html#ga1644cf55d37435711df65c12a3f7b785" title="Sybase macro, maps to the internal (lower-case) function. ">DBTDS()</a>. </dd></dl>
 1069 <div class="dynheader">
 1070 Here is the call graph for this function:</div>
 1071 <div class="dyncontent">
 1072 <div class="center"><iframe scrolling="no" frameborder="0" src="a00545_ga8d765d810a40dfa01b39995a8e7406f0_cgraph.svg" width="218" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 1073 </div>
 1074 </div>
 1075 
 1076 </div>
 1077 </div>
 1078 <a id="gaccbc6d98d9528c48cf0254d809ca73ff"></a>
 1079 <h2 class="memtitle"><span class="permalink"><a href="#gaccbc6d98d9528c48cf0254d809ca73ff">&sect;&nbsp;</a></span>default_err_handler()</h2>
 1080 
 1081 <div class="memitem">
 1082 <div class="memproto">
 1083 <table class="mlabels">
 1084   <tr>
 1085   <td class="mlabels-left">
 1086       <table class="memname">
 1087         <tr>
 1088           <td class="memname">static int default_err_handler </td>
 1089           <td>(</td>
 1090           <td class="paramtype"><a class="el" href="a00926.html">DBPROCESS</a> *&#160;</td>
 1091           <td class="paramname"><em>dbproc</em>, </td>
 1092         </tr>
 1093         <tr>
 1094           <td class="paramkey"></td>
 1095           <td></td>
 1096           <td class="paramtype">int&#160;</td>
 1097           <td class="paramname"><em>severity</em>, </td>
 1098         </tr>
 1099         <tr>
 1100           <td class="paramkey"></td>
 1101           <td></td>
 1102           <td class="paramtype">int&#160;</td>
 1103           <td class="paramname"><em>dberr</em>, </td>
 1104         </tr>
 1105         <tr>
 1106           <td class="paramkey"></td>
 1107           <td></td>
 1108           <td class="paramtype">int&#160;</td>
 1109           <td class="paramname"><em>oserr</em>, </td>
 1110         </tr>
 1111         <tr>
 1112           <td class="paramkey"></td>
 1113           <td></td>
 1114           <td class="paramtype">char *&#160;</td>
 1115           <td class="paramname"><em>dberrstr</em>, </td>
 1116         </tr>
 1117         <tr>
 1118           <td class="paramkey"></td>
 1119           <td></td>
 1120           <td class="paramtype">char *&#160;</td>
 1121           <td class="paramname"><em>oserrstr</em>&#160;</td>
 1122         </tr>
 1123         <tr>
 1124           <td></td>
 1125           <td>)</td>
 1126           <td></td><td></td>
 1127         </tr>
 1128       </table>
 1129   </td>
 1130   <td class="mlabels-right">
 1131 <span class="mlabels"><span class="mlabel">static</span></span>  </td>
 1132   </tr>
 1133 </table>
 1134 </div><div class="memdoc">
 1135 
 1136 <p>default error handler for db-lib (handles library-generated errors) </p>
 1137 <p>The default error handler doesn't print anything. If you want to see your messages printed, install an error handler. If you think that should be an optional compile- or run-time default, submit a patch. It could be done.</p>
 1138 <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00539.html#ga2c7b5eec4843ea326b21f2db2ded2754" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBDEAD()</a>, <a class="el" href="a00539.html#gab8209543de865f359bdb32829fa8b757" title="Set an error handler, for messages from db-lib. ">dberrhandle()</a>. </dd></dl>
 1139 <div class="dynheader">
 1140 Here is the call graph for this function:</div>
 1141 <div class="dyncontent">
 1142 <div class="center"><iframe scrolling="no" frameborder="0" src="a00545_gaccbc6d98d9528c48cf0254d809ca73ff_cgraph.svg" width="308" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 1143 </div>
 1144 </div>
 1145 
 1146 </div>
 1147 </div>
 1148 <a id="ga2c99ec565452279e9a382451d89642eb"></a>
 1149 <h2 class="memtitle"><span class="permalink"><a href="#ga2c99ec565452279e9a382451d89642eb">&sect;&nbsp;</a></span>tdsdbopen()</h2>
 1150 
 1151 <div class="memitem">
 1152 <div class="memproto">
 1153       <table class="memname">
 1154         <tr>
 1155           <td class="memname"><a class="el" href="a00926.html">DBPROCESS</a>* tdsdbopen </td>
 1156           <td>(</td>
 1157           <td class="paramtype"><a class="el" href="a00586.html">LOGINREC</a> *&#160;</td>
 1158           <td class="paramname"><em>login</em>, </td>
 1159         </tr>
 1160         <tr>
 1161           <td class="paramkey"></td>
 1162           <td></td>
 1163           <td class="paramtype">const char *&#160;</td>
 1164           <td class="paramname"><em>server</em>, </td>
 1165         </tr>
 1166         <tr>
 1167           <td class="paramkey"></td>
 1168           <td></td>
 1169           <td class="paramtype">int&#160;</td>
 1170           <td class="paramname"><em>msdblib</em>&#160;</td>
 1171         </tr>
 1172         <tr>
 1173           <td></td>
 1174           <td>)</td>
 1175           <td></td><td></td>
 1176         </tr>
 1177       </table>
 1178 </div><div class="memdoc">
 1179 
 1180 <p>Form a connection with the server. </p>
 1181 <p>Called by the <code><a class="el" href="a00497.html#ae408d8e1c2ab0767d8bfd26d00d1ff6a" title="Normally not used. ">dbopen()</a></code> macro, normally. If FreeTDS was configured with <code>&ndash;enable-msdblib</code>, this function is called by (exported) <code><a class="el" href="a00497.html#ae408d8e1c2ab0767d8bfd26d00d1ff6a" title="Normally not used. ">dbopen()</a></code> function. <code>tdsdbopen</code> is so-named to avoid namespace conflicts with other database libraries that use the same function name. </p><dl class="params"><dt>Parameters</dt><dd>
 1182   <table class="params">
 1183     <tr><td class="paramname">login</td><td><code>LOGINREC*</code> carrying the account information. </td></tr>
 1184     <tr><td class="paramname">server</td><td>name of the dataserver to connect to. </td></tr>
 1185   </table>
 1186   </dd>
 1187 </dl>
 1188 <dl class="section return"><dt>Returns</dt><dd>valid pointer on successful login. </dd></dl>
 1189 <dl class="retval"><dt>Return values</dt><dd>
 1190   <table class="retval">
 1191     <tr><td class="paramname">NULL</td><td>insufficient memory, unable to connect for any reason. </td></tr>
 1192   </table>
 1193   </dd>
 1194 </dl>
 1195 <dl class="section see"><dt>See also</dt><dd><a class="el" href="a00497.html#ae408d8e1c2ab0767d8bfd26d00d1ff6a" title="Normally not used. ">dbopen()</a> </dd></dl>
 1196 <dl class="todo"><dt><b><a class="el" href="a00536.html#_todo000005">Todo:</a></b></dt><dd><p class="startdd">use <code>asprintf()</code> to avoid buffer overflow. </p>
 1197 <p class="enddd">separate error messages for <em>no-such-server</em> and <em>no-such-user</em>. </p>
 1198 </dd></dl>
 1199 <div class="dynheader">
 1200 Here is the call graph for this function:</div>
 1201 <div class="dyncontent">
 1202 <div class="center"><iframe scrolling="no" frameborder="0" src="a00545_ga2c99ec565452279e9a382451d89642eb_cgraph.svg" width="262" height="88"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 1203 </div>
 1204 </div>
 1205 <div class="dynheader">
 1206 Here is the caller graph for this function:</div>
 1207 <div class="dyncontent">
 1208 <div class="center"><iframe scrolling="no" frameborder="0" src="a00545_ga2c99ec565452279e9a382451d89642eb_icgraph.svg" width="216" height="38"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 1209 </div>
 1210 </div>
 1211 
 1212 </div>
 1213 </div>
 1214 </div><!-- contents -->
 1215 <!-- start footer part -->
 1216 <hr class="footer"/><address class="footer"><small>
 1217 Generated by &#160;<a href="http://www.doxygen.org/index.html">
 1218 <img class="footer" src="doxygen.png" alt="doxygen"/>
 1219 </a> 1.8.12
 1220 </small></address>
 1221 </body>
 1222 </html>