Sophie

Sophie

distrib > Mageia > 7 > i586 > by-pkgid > 015211042b50454b9a90b1b1f3a70f38 > files > 639

freetds-doc-1.00.83-2.mga7.i586.rpm

<!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"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.12"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>FreeTDS API: Internals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">FreeTDS API
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.12 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

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

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Internals<div class="ingroups"><a class="el" href="a00517.html">The db-lib API</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Functions called within <code>db-lib</code> for self-help.  
<a href="#details">More...</a></p>
<div class="dynheader">
Collaboration diagram for Internals:</div>
<div class="dyncontent">
<center><table><tr><td><div class="center"><iframe scrolling="no" frameborder="0" src="a00524.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>
</div>
</td></tr></table></center>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00589.html">_dblib_error_message</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:gae52fc525116a3491c7e1092ad8257767"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#gae52fc525116a3491c7e1092ad8257767">DBSETLLABELED</a>(x,  y)&#160;&#160;&#160;<a class="el" href="a00524.html#ga03e850369aca6fba074da5e9da4effd7">dbsetlbool</a>((x), (y), DBSETLABELED)</td></tr>
<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>
<tr class="separator:gae52fc525116a3491c7e1092ad8257767"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7306859300823c120d807108a061c45a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#ga7306859300823c120d807108a061c45a">DBSETLVERSION</a>(login,  version)&#160;&#160;&#160;<a class="el" href="a00518.html#gaa22dce1ee0eb83059699c34c47d07c14">dbsetlversion</a>((login), (version))</td></tr>
<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>
<tr class="separator:ga7306859300823c120d807108a061c45a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:ga73ccf3a130f836159e43074544f338e3"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="a00589.html">_dblib_error_message</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#ga73ccf3a130f836159e43074544f338e3">DBLIB_ERROR_MESSAGE</a></td></tr>
<tr class="separator:ga73ccf3a130f836159e43074544f338e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga3c6f474c0662158f3100fe464bf077d9"><td class="memItemLeft" align="right" valign="top">static BYTE *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#ga3c6f474c0662158f3100fe464bf077d9">_dbcoldata</a> (<a class="el" href="a01133.html">TDSCOLUMN</a> *colinfo)</td></tr>
<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>
<tr class="separator:ga3c6f474c0662158f3100fe464bf077d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadf15185b0d417edc0bb8a6a4f0bae727"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#gadf15185b0d417edc0bb8a6a4f0bae727">_dblib_check_and_handle_interrupt</a> (void *vdbproc)</td></tr>
<tr class="memdesc:gadf15185b0d417edc0bb8a6a4f0bae727"><td class="mdescLeft">&#160;</td><td class="mdescRight">check interrupts for libtds.  <a href="#gadf15185b0d417edc0bb8a6a4f0bae727">More...</a><br /></td></tr>
<tr class="separator:gadf15185b0d417edc0bb8a6a4f0bae727"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga196f6d67de47f34a32fcc2103ab0f416"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#ga196f6d67de47f34a32fcc2103ab0f416">dbcmdrow</a> (<a class="el" href="a00901.html">DBPROCESS</a> *dbproc)</td></tr>
<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>
<tr class="separator:ga196f6d67de47f34a32fcc2103ab0f416"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0fc84c7073ed4876d9596c3eccac3609"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="a01133.html">TDSCOLUMN</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#ga0fc84c7073ed4876d9596c3eccac3609">dbcolptr</a> (<a class="el" href="a00901.html">DBPROCESS</a> *dbproc, int column)</td></tr>
<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>
<tr class="separator:ga0fc84c7073ed4876d9596c3eccac3609"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga01e7fb38bece3bb07526532fa6be50e5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#ga01e7fb38bece3bb07526532fa6be50e5">dbcurcmd</a> (<a class="el" href="a00901.html">DBPROCESS</a> *dbproc)</td></tr>
<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>
<tr class="separator:ga01e7fb38bece3bb07526532fa6be50e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9e23a95d84192b4fc83db7544d772d16"><td class="memItemLeft" align="right" valign="top">DBINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#ga9e23a95d84192b4fc83db7544d772d16">dbcurrow</a> (<a class="el" href="a00901.html">DBPROCESS</a> *dbproc)</td></tr>
<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>
<tr class="separator:ga9e23a95d84192b4fc83db7544d772d16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaed43cb21ed54dc1a6340075d6290e4b0"><td class="memItemLeft" align="right" valign="top">DBBOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#gaed43cb21ed54dc1a6340075d6290e4b0">dbdead</a> (<a class="el" href="a00901.html">DBPROCESS</a> *dbproc)</td></tr>
<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>
<tr class="separator:gaed43cb21ed54dc1a6340075d6290e4b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf40b925f3b3ba43804720dd4ae584935"><td class="memItemLeft" align="right" valign="top">DBINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#gaf40b925f3b3ba43804720dd4ae584935">dbfirstrow</a> (<a class="el" href="a00901.html">DBPROCESS</a> *dbproc)</td></tr>
<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>
<tr class="separator:gaf40b925f3b3ba43804720dd4ae584935"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab842baac0ec420b265d8c199cc45059d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#gab842baac0ec420b265d8c199cc45059d">dbiordesc</a> (<a class="el" href="a00901.html">DBPROCESS</a> *dbproc)</td></tr>
<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>
<tr class="separator:gab842baac0ec420b265d8c199cc45059d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga666a4d0609ee7f241deb0a62893d2cfa"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#ga666a4d0609ee7f241deb0a62893d2cfa">dbiowdesc</a> (<a class="el" href="a00901.html">DBPROCESS</a> *dbproc)</td></tr>
<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>
<tr class="separator:ga666a4d0609ee7f241deb0a62893d2cfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga13ead146339b43b3a4d9049eb124ef4b"><td class="memItemLeft" align="right" valign="top">DBINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#ga13ead146339b43b3a4d9049eb124ef4b">dblastrow</a> (<a class="el" href="a00901.html">DBPROCESS</a> *dbproc)</td></tr>
<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>
<tr class="separator:ga13ead146339b43b3a4d9049eb124ef4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga302a4ce6559b81808e3be51615cd1b67"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#ga302a4ce6559b81808e3be51615cd1b67">dbperror</a> (<a class="el" href="a00901.html">DBPROCESS</a> *dbproc, DBINT msgno, long errnum,...)</td></tr>
<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>
<tr class="separator:ga302a4ce6559b81808e3be51615cd1b67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4be2ab59dc7161d6b93c17202e7ae9b1"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#ga4be2ab59dc7161d6b93c17202e7ae9b1">dbrows</a> (<a class="el" href="a00901.html">DBPROCESS</a> *dbproc)</td></tr>
<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>
<tr class="separator:ga4be2ab59dc7161d6b93c17202e7ae9b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa2dc8c062342f76adffe53ee280b7fb4"><td class="memItemLeft" align="right" valign="top">STATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#gaa2dc8c062342f76adffe53ee280b7fb4">dbrowtype</a> (<a class="el" href="a00901.html">DBPROCESS</a> *dbproc)</td></tr>
<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>
<tr class="separator:gaa2dc8c062342f76adffe53ee280b7fb4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5ce245ff327a3d333280fe7b43d69ded"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#ga5ce245ff327a3d333280fe7b43d69ded">dbsetavail</a> (<a class="el" href="a00901.html">DBPROCESS</a> *dbproc)</td></tr>
<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>
<tr class="separator:ga5ce245ff327a3d333280fe7b43d69ded"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga03e850369aca6fba074da5e9da4effd7"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#ga03e850369aca6fba074da5e9da4effd7">dbsetlbool</a> (<a class="el" href="a00565.html">LOGINREC</a> *login, int value, int which)</td></tr>
<tr class="memdesc:ga03e850369aca6fba074da5e9da4effd7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set a boolean value in a <code><a class="el" href="a00565.html">LOGINREC</a></code> structure.  <a href="#ga03e850369aca6fba074da5e9da4effd7">More...</a><br /></td></tr>
<tr class="separator:ga03e850369aca6fba074da5e9da4effd7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabdcccf4e0d093ff48c0e7048a4bfaf84"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#gabdcccf4e0d093ff48c0e7048a4bfaf84">dbsetllong</a> (<a class="el" href="a00565.html">LOGINREC</a> *login, long value, int which)</td></tr>
<tr class="memdesc:gabdcccf4e0d093ff48c0e7048a4bfaf84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set an integer value in a <code><a class="el" href="a00565.html">LOGINREC</a></code> structure.  <a href="#gabdcccf4e0d093ff48c0e7048a4bfaf84">More...</a><br /></td></tr>
<tr class="separator:gabdcccf4e0d093ff48c0e7048a4bfaf84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae1fc46447c4f8a9ff7f66607b8cd23b6"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#gae1fc46447c4f8a9ff7f66607b8cd23b6">dbsetlname</a> (<a class="el" href="a00565.html">LOGINREC</a> *login, const char *value, int which)</td></tr>
<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="a00565.html">LOGINREC</a></code> structure.  <a href="#gae1fc46447c4f8a9ff7f66607b8cd23b6">More...</a><br /></td></tr>
<tr class="separator:gae1fc46447c4f8a9ff7f66607b8cd23b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8d765d810a40dfa01b39995a8e7406f0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#ga8d765d810a40dfa01b39995a8e7406f0">dbtds</a> (<a class="el" href="a00901.html">DBPROCESS</a> *dbproc)</td></tr>
<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>
<tr class="separator:ga8d765d810a40dfa01b39995a8e7406f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaccbc6d98d9528c48cf0254d809ca73ff"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#gaccbc6d98d9528c48cf0254d809ca73ff">default_err_handler</a> (<a class="el" href="a00901.html">DBPROCESS</a> *dbproc, int severity, int dberr, int oserr, char *dberrstr, char *oserrstr)</td></tr>
<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>
<tr class="separator:gaccbc6d98d9528c48cf0254d809ca73ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2c99ec565452279e9a382451d89642eb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00901.html">DBPROCESS</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00524.html#ga2c99ec565452279e9a382451d89642eb">tdsdbopen</a> (<a class="el" href="a00565.html">LOGINREC</a> *login, const char *server, int msdblib)</td></tr>
<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>
<tr class="separator:ga2c99ec565452279e9a382451d89642eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Functions called within <code>db-lib</code> for self-help. </p>
<p>These functions are of interest only to people hacking on the FreeTDS db-lib implementation. </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="gae52fc525116a3491c7e1092ad8257767"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae52fc525116a3491c7e1092ad8257767">&sect;&nbsp;</a></span>DBSETLLABELED</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBSETLLABELED</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">y&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="a00524.html#ga03e850369aca6fba074da5e9da4effd7">dbsetlbool</a>((x), (y), DBSETLABELED)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Alternative way to set login packet fields. </p>
<dl class="section see"><dt>See also</dt><dd>dbsetllabeled() </dd></dl>

</div>
</div>
<a id="ga7306859300823c120d807108a061c45a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7306859300823c120d807108a061c45a">&sect;&nbsp;</a></span>DBSETLVERSION</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBSETLVERSION</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">login, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">version&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="a00518.html#gaa22dce1ee0eb83059699c34c47d07c14">dbsetlversion</a>((login), (version))</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>maps to the Microsoft (lower-case) function. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00518.html#gaa22dce1ee0eb83059699c34c47d07c14" title="Set TDS version for future connections. ">dbsetlversion()</a> </dd></dl>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="ga73ccf3a130f836159e43074544f338e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga73ccf3a130f836159e43074544f338e3">&sect;&nbsp;</a></span>DBLIB_ERROR_MESSAGE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef struct <a class="el" href="a00589.html">_dblib_error_message</a>  <a class="el" href="a00524.html#ga73ccf3a130f836159e43074544f338e3">DBLIB_ERROR_MESSAGE</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section remark"><dt>Remarks</dt><dd>member msgno Vendor-defined message number </dd>
<dd>
member severity Is passed to the error handler </dd>
<dd>
member msgtext Text of message </dd></dl>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga3c6f474c0662158f3100fe464bf077d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3c6f474c0662158f3100fe464bf077d9">&sect;&nbsp;</a></span>_dbcoldata()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static BYTE * _dbcoldata </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a01133.html">TDSCOLUMN</a> *&#160;</td>
          <td class="paramname"><em>colinfo</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return data from a column. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">colinfo</td><td>contains information on a result column. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to the data, or NULL if data are NULL </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00518.html#gaee60c306a22383805a4b9caa647a1e16" title="Get address of data in a regular result column. ">dbdata()</a>, <a class="el" href="a00519.html#ga42e187003b74fec6e9ca92d410bfb9c0" title="Get value of an output parameter filled by a stored procedure. ">dbretdata()</a> </dd></dl>

</div>
</div>
<a id="gadf15185b0d417edc0bb8a6a4f0bae727"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gadf15185b0d417edc0bb8a6a4f0bae727">&sect;&nbsp;</a></span>_dblib_check_and_handle_interrupt()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int _dblib_check_and_handle_interrupt </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>vdbproc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>check interrupts for libtds. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <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>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00518.html#ga2c7b5eec4843ea326b21f2db2ded2754" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBDEAD()</a>, <a class="el" href="a00518.html#ga335fcbe476ad0f897e4e2ce377f0a8cc" title="Set interrupt handler for db-lib to use while blocked against a read from the server. ">dbsetinterrupt()</a>. </dd></dl>

</div>
</div>
<a id="ga196f6d67de47f34a32fcc2103ab0f416"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga196f6d67de47f34a32fcc2103ab0f416">&sect;&nbsp;</a></span>dbcmdrow()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RETCODE dbcmdrow </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00901.html">DBPROCESS</a> *&#160;</td>
          <td class="paramname"><em>dbproc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>See if the current command can return rows. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">SUCCEED</td><td>Yes, it can. </td></tr>
    <tr><td class="paramname">FAIL</td><td>No, it can't. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section remark"><dt>Remarks</dt><dd>Use <a class="el" href="a00518.html#ga8b263669ce0312e52b5ea42a57a56838" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBCMDROW()</a> macro instead. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00518.html#ga8b263669ce0312e52b5ea42a57a56838" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBCMDROW()</a>, dbnextrow(), <a class="el" href="a00518.html#ga4e26d949be2c3bf71b1a33c75b11d931" title="Set up query results. ">dbresults()</a>, <a class="el" href="a00518.html#ga48d71b32c26703c810191ef916c5448c" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBROWS()</a>, <a class="el" href="a00518.html#ga6fda3f4982dda5825d13fee392e89fd9" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBROWTYPE()</a>. </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a00524_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>
</div>
</div>

</div>
</div>
<a id="ga0fc84c7073ed4876d9596c3eccac3609"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0fc84c7073ed4876d9596c3eccac3609">&sect;&nbsp;</a></span>dbcolptr()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="a01133.html">TDSCOLUMN</a>* dbcolptr </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00901.html">DBPROCESS</a> *&#160;</td>
          <td class="paramname"><em>dbproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>column</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sanity checks for column-oriented functions. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
    <tr><td class="paramname">pcolinfo</td><td>address of pointer to a TDSCOLUMN structure. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section remark"><dt>Remarks</dt><dd>Makes sure dbproc and the requested column are valid. Calls <a class="el" href="a00524.html#ga302a4ce6559b81808e3be51615cd1b67" title="Call client-installed error handler. ">dbperror()</a> if not. </dd></dl>
<dl class="section return"><dt>Returns</dt><dd>appropriate error or SUCCEED </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a00524_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>
</div>
</div>

</div>
</div>
<a id="ga01e7fb38bece3bb07526532fa6be50e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga01e7fb38bece3bb07526532fa6be50e5">&sect;&nbsp;</a></span>dbcurcmd()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int dbcurcmd </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00901.html">DBPROCESS</a> *&#160;</td>
          <td class="paramname"><em>dbproc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get number of the row just returned. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00518.html#gaf49e4b58918bfa4d4adaa14ee5bb375c" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBCURROW()</a>. </dd></dl>
<dl class="todo"><dt><b><a class="el" href="a00515.html#_todo000014">Todo:</a></b></dt><dd>Unimplemented. </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a00524_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>
</div>
</div>

</div>
</div>
<a id="ga9e23a95d84192b4fc83db7544d772d16"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9e23a95d84192b4fc83db7544d772d16">&sect;&nbsp;</a></span>dbcurrow()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBINT dbcurrow </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00901.html">DBPROCESS</a> *&#160;</td>
          <td class="paramname"><em>dbproc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get number of the row currently being read. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>ostensibly the row number, or 0 if no rows have been read yet. </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">0</td><td>Always. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00518.html#gaf49e4b58918bfa4d4adaa14ee5bb375c" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBCURROW()</a>, <a class="el" href="a00518.html#ga01404b179a251c249aecfdae72ec6ca4" title="Clear n rows from the row buffer. ">dbclrbuf()</a>, <a class="el" href="a00518.html#ga97a6493786124215ec9fe4b4bd2d7cbb" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBFIRSTROW()</a>, <a class="el" href="a00518.html#ga60fe544491c760f8bc6c37bc7f777d70" title="Read a row from the row buffer. ">dbgetrow()</a>, <a class="el" href="a00518.html#ga10b9b26cf9a901146e9675a9e678632b" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBLASTROW()</a>, dbnextrow(), <a class="el" href="a00518.html#ga9d660d278f3f58871b4086c0e175f4c6" title="Set db-lib or server option. ">dbsetopt()</a>,. </dd></dl>
<dl class="todo"><dt><b><a class="el" href="a00515.html#_todo000013">Todo:</a></b></dt><dd>Unimplemented. </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a00524_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>
</div>
</div>

</div>
</div>
<a id="gaed43cb21ed54dc1a6340075d6290e4b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaed43cb21ed54dc1a6340075d6290e4b0">&sect;&nbsp;</a></span>dbdead()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBBOOL dbdead </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00901.html">DBPROCESS</a> *&#160;</td>
          <td class="paramname"><em>dbproc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check if <em>dbproc</em> is an ex-parrot. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">TRUE</td><td>process has been marked <em>dead</em>. </td></tr>
    <tr><td class="paramname">FALSE</td><td>process is OK. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section remark"><dt>Remarks</dt><dd><a class="el" href="a00524.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="a00524.html#gaed43cb21ed54dc1a6340075d6290e4b0" title="Check if dbproc is an ex-parrot. ">dbdead()</a> returns <code>FALSE</code>. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00518.html#gab8209543de865f359bdb32829fa8b757" title="Set an error handler, for messages from db-lib. ">dberrhandle()</a>. </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a00524_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>
</div>
</div>

</div>
</div>
<a id="gaf40b925f3b3ba43804720dd4ae584935"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf40b925f3b3ba43804720dd4ae584935">&sect;&nbsp;</a></span>dbfirstrow()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBINT dbfirstrow </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00901.html">DBPROCESS</a> *&#160;</td>
          <td class="paramname"><em>dbproc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>See if a server response has arrived. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
    <tr><td class="paramname">milliseconds</td><td>how long to wait for the server before returning:<ul>
<li><code>0</code> return immediately.</li>
<li><code>-1</code> do not return until the server responds or a system interrupt occurs. </li>
</ul>
</td></tr>
    <tr><td class="paramname">ready_dbproc</td><td><em>output:</em> DBPROCESS for which a response arrived, of <code>NULL</code>. </td></tr>
    <tr><td class="paramname">return_reason</td><td><em>output:</em> <ul>
<li><code>DBRESULT</code> server responded.</li>
<li><code>DBNOTIFICATION</code> registered procedure notification has arrived. dbpoll() the registered handler, if any, before it returns.</li>
<li><code>DBTIMEOUT</code> <em>milliseconds</em> elapsed before the server responded.</li>
<li><code>DBINTERRUPT</code> operating-system interrupt occurred before the server responded. </li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">SUCCEED</td><td>everything worked. </td></tr>
    <tr><td class="paramname">FAIL</td><td>a server connection died. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00518.html#ga74ac942f9b7baa49e1d7d18628321297" title="Sybase macro, maps to the internal (lower-case) function. ">DBIORDESC()</a>, DBRBUF(), <a class="el" href="a00518.html#ga4e26d949be2c3bf71b1a33c75b11d931" title="Set up query results. ">dbresults()</a>, dbreghandle(), <a class="el" href="a00518.html#gae1f50a6a2c31fda57cb481922b06841e" title="Wait for results of a query from the server. ">dbsqlok()</a>. </dd></dl>
<dl class="todo"><dt><b><a class="el" href="a00515.html#_todo000016">Todo:</a></b></dt><dd>Unimplemented. </dd></dl>
<p>Get number of the first row in the row buffer.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00518.html#ga97a6493786124215ec9fe4b4bd2d7cbb" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBFIRSTROW()</a>, <a class="el" href="a00518.html#ga01404b179a251c249aecfdae72ec6ca4" title="Clear n rows from the row buffer. ">dbclrbuf()</a>, <a class="el" href="a00518.html#gaf49e4b58918bfa4d4adaa14ee5bb375c" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBCURROW()</a>, <a class="el" href="a00518.html#ga60fe544491c760f8bc6c37bc7f777d70" title="Read a row from the row buffer. ">dbgetrow()</a>, <a class="el" href="a00518.html#ga10b9b26cf9a901146e9675a9e678632b" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBLASTROW()</a>, dbnextrow(), <a class="el" href="a00518.html#ga9d660d278f3f58871b4086c0e175f4c6" title="Set db-lib or server option. ">dbsetopt()</a>. </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a00524_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>
</div>
</div>

</div>
</div>
<a id="gab842baac0ec420b265d8c199cc45059d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab842baac0ec420b265d8c199cc45059d">&sect;&nbsp;</a></span>dbiordesc()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int dbiordesc </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00901.html">DBPROCESS</a> *&#160;</td>
          <td class="paramname"><em>dbproc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get file descriptor of the socket used by a <code>DBPROCESS</code> to read data coming from the server. (!) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00518.html#ga87b39d9863316b4ba85654b0885d53a0" title="Append SQL to the command buffer. ">dbcmd()</a>, <a class="el" href="a00518.html#ga74ac942f9b7baa49e1d7d18628321297" title="Sybase macro, maps to the internal (lower-case) function. ">DBIORDESC()</a>, <a class="el" href="a00518.html#ga5afb13924cda059d30be36a70dcf2cd9" title="Sybase macro, maps to the internal (lower-case) function. ">DBIOWDESC()</a>, dbnextrow(), dbpoll(), DBRBUF(), <a class="el" href="a00518.html#ga4e26d949be2c3bf71b1a33c75b11d931" title="Set up query results. ">dbresults()</a>, <a class="el" href="a00518.html#gae1f50a6a2c31fda57cb481922b06841e" title="Wait for results of a query from the server. ">dbsqlok()</a>, <a class="el" href="a00518.html#gac980139b9cea03cf93e373d425991481" title="Transmit the command buffer to the server. ">dbsqlsend()</a>. </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a00524_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>
</div>
</div>

</div>
</div>
<a id="ga666a4d0609ee7f241deb0a62893d2cfa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga666a4d0609ee7f241deb0a62893d2cfa">&sect;&nbsp;</a></span>dbiowdesc()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int dbiowdesc </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00901.html">DBPROCESS</a> *&#160;</td>
          <td class="paramname"><em>dbproc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get file descriptor of the socket used by a <code>DBPROCESS</code> to write data coming to the server. (!) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00518.html#ga87b39d9863316b4ba85654b0885d53a0" title="Append SQL to the command buffer. ">dbcmd()</a>, <a class="el" href="a00518.html#ga74ac942f9b7baa49e1d7d18628321297" title="Sybase macro, maps to the internal (lower-case) function. ">DBIORDESC()</a>, <a class="el" href="a00518.html#ga5afb13924cda059d30be36a70dcf2cd9" title="Sybase macro, maps to the internal (lower-case) function. ">DBIOWDESC()</a>, dbnextrow(), dbpoll(), DBRBUF(), <a class="el" href="a00518.html#ga4e26d949be2c3bf71b1a33c75b11d931" title="Set up query results. ">dbresults()</a>, <a class="el" href="a00518.html#gae1f50a6a2c31fda57cb481922b06841e" title="Wait for results of a query from the server. ">dbsqlok()</a>, <a class="el" href="a00518.html#gac980139b9cea03cf93e373d425991481" title="Transmit the command buffer to the server. ">dbsqlsend()</a>. </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a00524_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>
</div>
</div>

</div>
</div>
<a id="ga13ead146339b43b3a4d9049eb124ef4b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga13ead146339b43b3a4d9049eb124ef4b">&sect;&nbsp;</a></span>dblastrow()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBINT dblastrow </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00901.html">DBPROCESS</a> *&#160;</td>
          <td class="paramname"><em>dbproc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get number of the last row in the row buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00518.html#ga10b9b26cf9a901146e9675a9e678632b" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBLASTROW()</a>, <a class="el" href="a00518.html#ga01404b179a251c249aecfdae72ec6ca4" title="Clear n rows from the row buffer. ">dbclrbuf()</a>, <a class="el" href="a00518.html#gaf49e4b58918bfa4d4adaa14ee5bb375c" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBCURROW()</a>, <a class="el" href="a00518.html#ga97a6493786124215ec9fe4b4bd2d7cbb" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBFIRSTROW()</a>, <a class="el" href="a00518.html#ga60fe544491c760f8bc6c37bc7f777d70" title="Read a row from the row buffer. ">dbgetrow()</a>, dbnextrow(), <a class="el" href="a00518.html#ga9d660d278f3f58871b4086c0e175f4c6" title="Set db-lib or server option. ">dbsetopt()</a>. </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a00524_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>
</div>
</div>

</div>
</div>
<a id="ga302a4ce6559b81808e3be51615cd1b67"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga302a4ce6559b81808e3be51615cd1b67">&sect;&nbsp;</a></span>dbperror()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int dbperror </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00901.html">DBPROCESS</a> *&#160;</td>
          <td class="paramname"><em>dbproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DBINT&#160;</td>
          <td class="paramname"><em>msgno</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>errnum</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Call client-installed error handler. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
    <tr><td class="paramname">msgno</td><td>identifies the error message to be passed to the client's handler. </td></tr>
    <tr><td class="paramname">errnum</td><td>identifies the OS error (errno), if any. Use 0 if not applicable. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the handler's return code, subject to correction and adjustment for vendor style:<ul>
<li>INT_CANCEL The db-lib function that encountered the error will return FAIL.</li>
<li>INT_TIMEOUT The db-lib function will cancel the operation and return FAIL. <em>dbproc</em> remains useable.</li>
<li>INT_CONTINUE The db-lib function will retry the operation. </li>
</ul>
</dd></dl>
<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>
<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>
<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>
<p>The call stack may look something like this:</p>
<ol type="1">
<li>application</li>
<li>db-lib function (encounters error)</li>
<li>dbperror</li>
<li>error handler (installed by application)</li>
</ol>
<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>
<p>The call stack may otherwise look something like this:</p>
<ol type="1">
<li>application</li>
<li>db-lib function</li>
<li>libtds function (encounters error)</li>
<li>_dblib_handle_err_message</li>
<li>dbperror</li>
<li>error handler (installed by application)</li>
</ol>
<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="a00518.html#gab8209543de865f359bdb32829fa8b757" title="Set an error handler, for messages from db-lib. ">dberrhandle()</a>, _dblib_handle_err_message(). </dd></dl>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a00524_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>
</div>
</div>

</div>
</div>
<a id="ga4be2ab59dc7161d6b93c17202e7ae9b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4be2ab59dc7161d6b93c17202e7ae9b1">&sect;&nbsp;</a></span>dbrows()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RETCODE dbrows </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00901.html">DBPROCESS</a> *&#160;</td>
          <td class="paramname"><em>dbproc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Indicate whether a query returned rows. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00518.html#ga48d71b32c26703c810191ef916c5448c" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBROWS()</a>, <a class="el" href="a00518.html#ga8b263669ce0312e52b5ea42a57a56838" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBCMDROW()</a>, dbnextrow(), <a class="el" href="a00518.html#ga4e26d949be2c3bf71b1a33c75b11d931" title="Set up query results. ">dbresults()</a>, <a class="el" href="a00518.html#ga6fda3f4982dda5825d13fee392e89fd9" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBROWTYPE()</a>. </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a00524_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>
</div>
</div>

</div>
</div>
<a id="gaa2dc8c062342f76adffe53ee280b7fb4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa2dc8c062342f76adffe53ee280b7fb4">&sect;&nbsp;</a></span>dbrowtype()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">STATUS dbrowtype </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00901.html">DBPROCESS</a> *&#160;</td>
          <td class="paramname"><em>dbproc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get returned row's type. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00518.html#ga6fda3f4982dda5825d13fee392e89fd9" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBROWTYPE()</a>. </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a00524_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>
</div>
</div>

</div>
</div>
<a id="ga5ce245ff327a3d333280fe7b43d69ded"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5ce245ff327a3d333280fe7b43d69ded">&sect;&nbsp;</a></span>dbsetavail()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void dbsetavail </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00901.html">DBPROCESS</a> *&#160;</td>
          <td class="paramname"><em>dbproc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Mark a <code>DBPROCESS</code> as "available". </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  </table>
  </dd>
</dl>
<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="a00524.html#ga5ce245ff327a3d333280fe7b43d69ded" title="Mark a DBPROCESS as &quot;available&quot;. ">dbsetavail()</a> resets it to "available". </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00518.html#ga40f6c951a851744e58ee715c652a8ac8" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBISAVAIL()</a>. DBSETAVAIL(). </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a00524_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>
</div>
</div>

</div>
</div>
<a id="ga03e850369aca6fba074da5e9da4effd7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga03e850369aca6fba074da5e9da4effd7">&sect;&nbsp;</a></span>dbsetlbool()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RETCODE dbsetlbool </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00565.html">LOGINREC</a> *&#160;</td>
          <td class="paramname"><em>login</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>which</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set a boolean value in a <code><a class="el" href="a00565.html">LOGINREC</a></code> structure. </p>
<p>Called by various macros to populate <em>login</em>. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">login</td><td>the <code>LOGINREC*</code> to modify. </td></tr>
    <tr><td class="paramname">value</td><td>the value to set it to. </td></tr>
    <tr><td class="paramname">which</td><td>the field to set. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section remark"><dt>Remarks</dt><dd>Only DBSETBCP is implemented. </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">SUCCEED</td><td>the value was set. </td></tr>
    <tr><td class="paramname">FAIL</td><td>invalid value passed for <em>which</em>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="todo"><dt><b><a class="el" href="a00515.html#_todo000004">Todo:</a></b></dt><dd>DBSETNOSHORT, DBSETENCRYPT, DBSETLABELED </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a00524_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>
</div>
</div>

</div>
</div>
<a id="gabdcccf4e0d093ff48c0e7048a4bfaf84"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabdcccf4e0d093ff48c0e7048a4bfaf84">&sect;&nbsp;</a></span>dbsetllong()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RETCODE dbsetllong </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00565.html">LOGINREC</a> *&#160;</td>
          <td class="paramname"><em>login</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>which</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set an integer value in a <code><a class="el" href="a00565.html">LOGINREC</a></code> structure. </p>
<p>Called by various macros to populate <em>login</em>. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">login</td><td>the <code>LOGINREC*</code> to modify. </td></tr>
    <tr><td class="paramname">value</td><td>the value to set it to. </td></tr>
    <tr><td class="paramname">which</td><td>the field to set. </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">SUCCEED</td><td>the value was set. </td></tr>
    <tr><td class="paramname">FAIL</td><td>anything other than <code>DBSETPACKET</code> was passed for <em>which</em>. </td></tr>
  </table>
  </dd>
</dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a00524_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>
</div>
</div>

</div>
</div>
<a id="gae1fc46447c4f8a9ff7f66607b8cd23b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae1fc46447c4f8a9ff7f66607b8cd23b6">&sect;&nbsp;</a></span>dbsetlname()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RETCODE dbsetlname </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00565.html">LOGINREC</a> *&#160;</td>
          <td class="paramname"><em>login</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>which</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set the value of a string in a <code><a class="el" href="a00565.html">LOGINREC</a></code> structure. </p>
<p>Called by various macros to populate <em>login</em>. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">login</td><td>the <code>LOGINREC*</code> to modify. </td></tr>
    <tr><td class="paramname">value</td><td>the value to set it to. </td></tr>
    <tr><td class="paramname">which</td><td>the field to set. </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">SUCCEED</td><td>the value was set. </td></tr>
    <tr><td class="paramname">FAIL</td><td><code>DBSETHID</code> or other invalid <em>which</em> was tried. </td></tr>
  </table>
  </dd>
</dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a00524_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>
</div>
</div>

</div>
</div>
<a id="ga8d765d810a40dfa01b39995a8e7406f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8d765d810a40dfa01b39995a8e7406f0">&sect;&nbsp;</a></span>dbtds()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int dbtds </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00901.html">DBPROCESS</a> *&#160;</td>
          <td class="paramname"><em>dbproc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the TDS version in use for <em>dbproc</em>. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">dbproc</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a <code>DBTDS*</code> token. </dd></dl>
<dl class="section remark"><dt>Remarks</dt><dd>The integer values of the constants are counterintuitive. </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00518.html#ga1644cf55d37435711df65c12a3f7b785" title="Sybase macro, maps to the internal (lower-case) function. ">DBTDS()</a>. </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a00524_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>
</div>
</div>

</div>
</div>
<a id="gaccbc6d98d9528c48cf0254d809ca73ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaccbc6d98d9528c48cf0254d809ca73ff">&sect;&nbsp;</a></span>default_err_handler()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static int default_err_handler </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00901.html">DBPROCESS</a> *&#160;</td>
          <td class="paramname"><em>dbproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>severity</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>dberr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>oserr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>dberrstr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>oserrstr</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>default error handler for db-lib (handles library-generated errors) </p>
<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>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00518.html#ga2c7b5eec4843ea326b21f2db2ded2754" title="Sybase macro mapping to the Microsoft (lower-case) function. ">DBDEAD()</a>, <a class="el" href="a00518.html#gab8209543de865f359bdb32829fa8b757" title="Set an error handler, for messages from db-lib. ">dberrhandle()</a>. </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a00524_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>
</div>
</div>

</div>
</div>
<a id="ga2c99ec565452279e9a382451d89642eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2c99ec565452279e9a382451d89642eb">&sect;&nbsp;</a></span>tdsdbopen()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00901.html">DBPROCESS</a>* tdsdbopen </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00565.html">LOGINREC</a> *&#160;</td>
          <td class="paramname"><em>login</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>server</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>msdblib</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Form a connection with the server. </p>
<p>Called by the <code><a class="el" href="a00479.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="a00479.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>
  <table class="params">
    <tr><td class="paramname">login</td><td><code>LOGINREC*</code> carrying the account information. </td></tr>
    <tr><td class="paramname">server</td><td>name of the dataserver to connect to. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>valid pointer on successful login. </dd></dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">NULL</td><td>insufficient memory, unable to connect for any reason. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00479.html#ae408d8e1c2ab0767d8bfd26d00d1ff6a" title="Normally not used. ">dbopen()</a> </dd></dl>
<dl class="todo"><dt><b><a class="el" href="a00515.html#_todo000005">Todo:</a></b></dt><dd><p class="startdd">use <code>asprintf()</code> to avoid buffer overflow. </p>
<p class="enddd">separate error messages for <em>no-such-server</em> and <em>no-such-user</em>. </p>
</dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a00524_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>
</div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="a00524_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>
</div>
</div>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.12
</small></address>
</body>
</html>