Current File : //usr/local/emps/share/doc/freetds/reference/a00563.html |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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.20"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>FreeTDS API: Query</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.20 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</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> |
<a href="#define-members">Macros</a> |
<a href="#typedef-members">Typedefs</a> |
<a href="#enum-members">Enumerations</a> |
<a href="#func-members">Functions</a> |
<a href="#var-members">Variables</a> </div>
<div class="headertitle">
<div class="title">Query<div class="ingroups"><a class="el" href="a00567.html">LibTDS API</a></div></div> </div>
</div><!--header-->
<div class="contents">
<p>Function to handle query.
<a href="#details">More...</a></p>
<div class="dynheader">
Collaboration diagram for Query:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 0 -->
</div>
</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  </td><td class="memItemRight" valign="bottom"><a class="el" href="a00771.html">tds_quoteout_stream</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </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:ga62c3dc9946acb3ffd1b7ae43424f5b47"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga62c3dc9946acb3ffd1b7ae43424f5b47">TDS_PUT_N_AS_UCS2</a>(tds, s)</td></tr>
<tr class="memdesc:ga62c3dc9946acb3ffd1b7ae43424f5b47"><td class="mdescLeft"> </td><td class="mdescRight">Utility to convert a constant ascii string to ucs2 and send to server. <a href="a00563.html#ga62c3dc9946acb3ffd1b7ae43424f5b47">More...</a><br /></td></tr>
<tr class="separator:ga62c3dc9946acb3ffd1b7ae43424f5b47"><td class="memSeparator" colspan="2"> </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:gab98676e2d9900ad46a626a9eaf111087"><td class="memItemLeft" align="right" valign="top"><a id="gab98676e2d9900ad46a626a9eaf111087"></a>
typedef struct <a class="el" href="a00771.html">tds_quoteout_stream</a> </td><td class="memItemRight" valign="bottom"><b>TDSQUOTEOUTSTREAM</b></td></tr>
<tr class="separator:gab98676e2d9900ad46a626a9eaf111087"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga06fc87d81c62e9abb8790b6e5713c55b"><td class="memItemLeft" align="right" valign="top"><a id="ga06fc87d81c62e9abb8790b6e5713c55b"></a>enum  </td><td class="memItemRight" valign="bottom">{ <br />
  <b>OPT_VERSION</b> = 0x01,
<b>OPT_TIMER</b> = 0x02,
<b>OPT_NOFOOTER</b> = 0x04,
<b>OPT_NOHEADER</b> = 0x08,
<br />
  <b>OPT_QUIET</b> = 0x10,
<b>OPT_VERBOSE</b> = 0x20,
<b>OPT_INSTANCES</b> = 0x40,
<b>POS_ISO1</b>,
<br />
  <b>POS_UTF8</b>,
<b>POS_UCS2LE</b>,
<b>POS_UCS2BE</b>,
<b>MUL_STARTED</b> = 1,
<br />
  <b>ASN1_SEQUENCE</b> = ASN1_TAG_SEQUENCE,
<b>CS_USERNAME</b> = 9100,
<b>CS_USERNAME</b> = 9100,
<b>CS_PASSWORD</b> = 9101,
<br />
  <b>CS_PASSWORD</b> = 9101,
<b>CS_APPNAME</b> = 9102,
<b>CS_APPNAME</b> = 9102,
<b>CS_HOSTNAME</b> = 9103,
<br />
  <b>CS_HOSTNAME</b> = 9103,
<b>CS_LOGIN_STATUS</b> = 9104,
<b>CS_LOGIN_STATUS</b> = 9104,
<b>CS_TDS_VERSION</b> = 9105,
<br />
  <b>CS_TDS_VERSION</b> = 9105,
<b>CS_CHARSETCNV</b> = 9106,
<b>CS_CHARSETCNV</b> = 9106,
<b>CS_PACKETSIZE</b> = 9107,
<br />
  <b>CS_PACKETSIZE</b> = 9107,
<b>CS_USERDATA</b> = 9108,
<b>CS_USERDATA</b> = 9108,
<b>CS_NETIO</b> = 9110,
<br />
  <b>CS_NETIO</b> = 9110,
<b>CS_TEXTLIMIT</b> = 9112,
<b>CS_TEXTLIMIT</b> = 9112,
<b>CS_HIDDEN_KEYS</b> = 9113,
<br />
  <b>CS_HIDDEN_KEYS</b> = 9113,
<b>CS_VERSION</b> = 9114,
<b>CS_VERSION</b> = 9114,
<b>CS_IFILE</b> = 9115,
<br />
  <b>CS_IFILE</b> = 9115,
<b>CS_LOGIN_TIMEOUT</b> = 9116,
<b>CS_LOGIN_TIMEOUT</b> = 9116,
<b>CS_TIMEOUT</b> = 9117,
<br />
  <b>CS_TIMEOUT</b> = 9117,
<b>CS_MAX_CONNECT</b> = 9118,
<b>CS_MAX_CONNECT</b> = 9118,
<b>CS_EXPOSE_FMTS</b> = 9120,
<br />
  <b>CS_EXPOSE_FMTS</b> = 9120,
<b>CS_EXTRA_INF</b> = 9121,
<b>CS_EXTRA_INF</b> = 9121,
<b>CS_ANSI_BINDS</b> = 9123,
<br />
  <b>CS_ANSI_BINDS</b> = 9123,
<b>CS_BULK_LOGIN</b> = 9124,
<b>CS_BULK_LOGIN</b> = 9124,
<b>CS_LOC_PROP</b> = 9125,
<br />
  <b>CS_LOC_PROP</b> = 9125,
<b>CS_PARENT_HANDLE</b> = 9130,
<b>CS_PARENT_HANDLE</b> = 9130,
<b>CS_EED_CMD</b> = 9131,
<br />
  <b>CS_EED_CMD</b> = 9131,
<b>CS_DIAG_TIMEOUT</b> = 9132,
<b>CS_DIAG_TIMEOUT</b> = 9132,
<b>CS_DISABLE_POLL</b> = 9133,
<br />
  <b>CS_DISABLE_POLL</b> = 9133,
<b>CS_SEC_ENCRYPTION</b> = 9135,
<b>CS_SEC_ENCRYPTION</b> = 9135,
<b>CS_SEC_CHALLENGE</b> = 9136,
<br />
  <b>CS_SEC_CHALLENGE</b> = 9136,
<b>CS_SEC_NEGOTIATE</b> = 9137,
<b>CS_SEC_NEGOTIATE</b> = 9137,
<b>CS_CON_STATUS</b> = 9143,
<br />
  <b>CS_CON_STATUS</b> = 9143,
<b>CS_VER_STRING</b> = 9144,
<b>CS_VER_STRING</b> = 9144,
<b>CS_SERVERNAME</b> = 9146,
<br />
  <b>CS_SERVERNAME</b> = 9146,
<b>CS_SEC_APPDEFINED</b> = 9149,
<b>CS_SEC_APPDEFINED</b> = 9149,
<b>CS_STICKY_BINDS</b> = 9151,
<br />
  <b>CS_STICKY_BINDS</b> = 9151,
<b>CS_SEC_NETWORKAUTH</b> = 9175,
<b>CS_SEC_NETWORKAUTH</b> = 9175,
<b>CS_SEC_DELEGATION</b> = 9176,
<br />
  <b>CS_SEC_DELEGATION</b> = 9176,
<b>CS_SEC_MUTUALAUTH</b> = 9177,
<b>CS_SEC_MUTUALAUTH</b> = 9177,
<b>CS_SEC_SERVERPRINCIPAL</b> = 9188,
<br />
  <b>CS_SEC_SERVERPRINCIPAL</b> = 9188,
<b>CS_SERVERADDR</b> = 9206,
<b>CS_SERVERADDR</b> = 9206,
<b>CS_PORT</b> = 9300,
<br />
  <b>CS_PORT</b> = 9300,
<b>CS_CLIENTCHARSET</b> = 9301,
<b>CS_CLIENTCHARSET</b> = 9301,
<b>CS_DATABASE</b>,
<br />
  <b>dblib_msdblib</b> = 0,
<b>TDS_CHARSET_ISO_8859_1</b> = 0,
<b>TDS_CHARSET_UTF_8</b> = 1,
<b>TDS_CHARSET_UCS_2LE</b> = 2,
<br />
  <b>TDS_CHARSET_UCS_2BE</b> = 3,
<b>TDS_CHARSET_ARMSCII_8</b> = 4,
<b>TDS_CHARSET_BIG_5</b> = 5,
<b>TDS_CHARSET_BIG5_HKSCS</b> = 6,
<br />
  <b>TDS_CHARSET_C99</b> = 7,
<b>TDS_CHARSET_CHINESE</b> = 8,
<b>TDS_CHARSET_CN</b> = 9,
<b>TDS_CHARSET_CN_GB</b> = 10,
<br />
  <b>TDS_CHARSET_CN_GB_ISOIR165</b> = 11,
<b>TDS_CHARSET_CP1133</b> = 12,
<b>TDS_CHARSET_CP1250</b> = 13,
<b>TDS_CHARSET_CP1251</b> = 14,
<br />
  <b>TDS_CHARSET_CP1252</b> = 15,
<b>TDS_CHARSET_CP1253</b> = 16,
<b>TDS_CHARSET_CP1254</b> = 17,
<b>TDS_CHARSET_CP1255</b> = 18,
<br />
  <b>TDS_CHARSET_CP1256</b> = 19,
<b>TDS_CHARSET_CP1257</b> = 20,
<b>TDS_CHARSET_CP1258</b> = 21,
<b>TDS_CHARSET_CP1361</b> = 22,
<br />
  <b>TDS_CHARSET_CP437</b> = 23,
<b>TDS_CHARSET_CP850</b> = 24,
<b>TDS_CHARSET_CP862</b> = 25,
<b>TDS_CHARSET_CP866</b> = 26,
<br />
  <b>TDS_CHARSET_CP874</b> = 27,
<b>TDS_CHARSET_CP932</b> = 28,
<b>TDS_CHARSET_CP936</b> = 29,
<b>TDS_CHARSET_CP949</b> = 30,
<br />
  <b>TDS_CHARSET_CP950</b> = 31,
<b>TDS_CHARSET_EUC_JP</b> = 32,
<b>TDS_CHARSET_EUC_KR</b> = 33,
<b>TDS_CHARSET_EUC_TW</b> = 34,
<br />
  <b>TDS_CHARSET_GB18030</b> = 35,
<b>TDS_CHARSET_GEORGIAN_ACADEMY</b> = 36,
<b>TDS_CHARSET_GEORGIAN_PS</b> = 37,
<b>TDS_CHARSET_HZ</b> = 38,
<br />
  <b>TDS_CHARSET_ISO_2022_CN</b> = 39,
<b>TDS_CHARSET_ISO_2022_CN_EXT</b> = 40,
<b>TDS_CHARSET_ISO_2022_JP</b> = 41,
<b>TDS_CHARSET_ISO_2022_JP_1</b> = 42,
<br />
  <b>TDS_CHARSET_ISO_2022_JP_2</b> = 43,
<b>TDS_CHARSET_ISO_2022_KR</b> = 44,
<b>TDS_CHARSET_ISO_8859_10</b> = 45,
<b>TDS_CHARSET_ISO_8859_13</b> = 46,
<br />
  <b>TDS_CHARSET_ISO_8859_14</b> = 47,
<b>TDS_CHARSET_ISO_8859_15</b> = 48,
<b>TDS_CHARSET_ISO_8859_16</b> = 49,
<b>TDS_CHARSET_ISO_8859_2</b> = 50,
<br />
  <b>TDS_CHARSET_ISO_8859_3</b> = 51,
<b>TDS_CHARSET_ISO_8859_4</b> = 52,
<b>TDS_CHARSET_ISO_8859_5</b> = 53,
<b>TDS_CHARSET_ISO_8859_6</b> = 54,
<br />
  <b>TDS_CHARSET_ISO_8859_7</b> = 55,
<b>TDS_CHARSET_ISO_8859_8</b> = 56,
<b>TDS_CHARSET_ISO_8859_9</b> = 57,
<b>TDS_CHARSET_ISO_IR_14</b> = 58,
<br />
  <b>TDS_CHARSET_ISO_IR_149</b> = 59,
<b>TDS_CHARSET_ISO_IR_159</b> = 60,
<b>TDS_CHARSET_ISO_IR_166</b> = 61,
<b>TDS_CHARSET_ISO_IR_87</b> = 62,
<br />
  <b>TDS_CHARSET_JAVA</b> = 63,
<b>TDS_CHARSET_JISX0201_1976</b> = 64,
<b>TDS_CHARSET_KOI8_R</b> = 65,
<b>TDS_CHARSET_KOI8_RU</b> = 66,
<br />
  <b>TDS_CHARSET_KOI8_T</b> = 67,
<b>TDS_CHARSET_KOI8_U</b> = 68,
<b>TDS_CHARSET_MAC</b> = 69,
<b>TDS_CHARSET_MACARABIC</b> = 70,
<br />
  <b>TDS_CHARSET_MACCENTRALEUROPE</b> = 71,
<b>TDS_CHARSET_MACCROATIAN</b> = 72,
<b>TDS_CHARSET_MACCYRILLIC</b> = 73,
<b>TDS_CHARSET_MACGREEK</b> = 74,
<br />
  <b>TDS_CHARSET_MACHEBREW</b> = 75,
<b>TDS_CHARSET_MACICELAND</b> = 76,
<b>TDS_CHARSET_MACROMANIA</b> = 77,
<b>TDS_CHARSET_MACTHAI</b> = 78,
<br />
  <b>TDS_CHARSET_MACTURKISH</b> = 79,
<b>TDS_CHARSET_MACUKRAINE</b> = 80,
<b>TDS_CHARSET_MULELAO_1</b> = 81,
<b>TDS_CHARSET_NEXTSTEP</b> = 82,
<br />
  <b>TDS_CHARSET_ROMAN8</b> = 83,
<b>TDS_CHARSET_SJIS</b> = 84,
<b>TDS_CHARSET_TCVN</b> = 85,
<b>TDS_CHARSET_UCS_4BE</b> = 86,
<br />
  <b>TDS_CHARSET_UCS_4LE</b> = 87,
<b>TDS_CHARSET_US_ASCII</b> = 88,
<b>TDS_CHARSET_UTF_16BE</b> = 89,
<b>TDS_CHARSET_UTF_16LE</b> = 90,
<br />
  <b>TDS_CHARSET_UTF_32BE</b> = 91,
<b>TDS_CHARSET_UTF_32LE</b> = 92,
<b>TDS_CHARSET_UTF_7</b> = 93,
<b>TDS_CHARSET_VISCII</b> = 94,
<br />
  <b>TDS_NUM_CHARSETS</b> = 95,
<b>ODBC_PARAM_SIZE</b>,
<b>TDS_OPT_ARITHOVERFLOW</b> = 0x01,
<b>TDS_OPT_NUMERICTRUNC</b> = 0x02,
<br />
  <b>TDS_CUR_ISTAT_UNUSED</b> = 0x00,
<b>TDS_CUR_ISTAT_DECLARED</b> = 0x01,
<b>TDS_CUR_ISTAT_OPEN</b> = 0x02,
<b>TDS_CUR_ISTAT_CLOSED</b> = 0x04,
<br />
  <b>TDS_CUR_ISTAT_RDONLY</b> = 0x08,
<b>TDS_CUR_ISTAT_UPDATABLE</b> = 0x10,
<b>TDS_CUR_ISTAT_ROWCNT</b> = 0x20,
<b>TDS_CUR_ISTAT_DEALLOC</b> = 0x40,
<br />
  <b>SYBCHAR</b> = 47,
<b>SYBCHAR</b> = 47,
<b>SYBVARCHAR</b> = 39,
<b>SYBVARCHAR</b> = 39,
<br />
  <b>SYBINTN</b> = 38,
<b>SYBINTN</b> = 38,
<b>SYBINT1</b> = 48,
<b>SYBINT1</b> = 48,
<br />
  <b>SYBINT2</b> = 52,
<b>SYBINT2</b> = 52,
<b>SYBINT4</b> = 56,
<b>SYBINT4</b> = 56,
<br />
  <b>SYBINT8</b> = 127,
<b>SYBINT8</b> = 127,
<b>SYBFLT8</b> = 62,
<b>SYBFLT8</b> = 62,
<br />
  <b>SYBDATETIME</b> = 61,
<b>SYBDATETIME</b> = 61,
<b>SYBBIT</b> = 50,
<b>SYBBIT</b> = 50,
<br />
  <b>SYBBITN</b> = 104,
<b>SYBBITN</b> = 104,
<b>SYBTEXT</b> = 35,
<b>SYBTEXT</b> = 35,
<br />
  <b>SYBNTEXT</b> = 99,
<b>SYBNTEXT</b> = 99,
<b>SYBIMAGE</b> = 34,
<b>SYBIMAGE</b> = 34,
<br />
  <b>SYBMONEY4</b> = 122,
<b>SYBMONEY4</b> = 122,
<b>SYBMONEY</b> = 60,
<b>SYBMONEY</b> = 60,
<br />
  <b>SYBDATETIME4</b> = 58,
<b>SYBDATETIME4</b> = 58,
<b>SYBREAL</b> = 59,
<b>SYBREAL</b> = 59,
<br />
  <b>SYBBINARY</b> = 45,
<b>SYBBINARY</b> = 45,
<b>SYBVOID</b> = 31,
<b>SYBVOID</b> = 31,
<br />
  <b>SYBVARBINARY</b> = 37,
<b>SYBVARBINARY</b> = 37,
<b>SYBNUMERIC</b> = 108,
<b>SYBNUMERIC</b> = 108,
<br />
  <b>SYBDECIMAL</b> = 106,
<b>SYBDECIMAL</b> = 106,
<b>SYBFLTN</b> = 109,
<b>SYBFLTN</b> = 109,
<br />
  <b>SYBMONEYN</b> = 110,
<b>SYBMONEYN</b> = 110,
<b>SYBDATETIMN</b> = 111,
<b>SYBDATETIMN</b> = 111,
<br />
  <b>SYBNVARCHAR</b> = 103,
<b>SYBNVARCHAR</b> = 103,
<b>SYBDATE</b> = 49,
<b>SYBDATE</b> = 49,
<br />
  <b>SYBTIME</b> = 51,
<b>SYBTIME</b> = 51,
<b>SYBBIGDATETIME</b> = 187,
<b>SYBBIGDATETIME</b> = 187,
<br />
  <b>SYBBIGTIME</b> = 188,
<b>SYBBIGTIME</b> = 188,
<b>SYBMSDATE</b> = 40,
<b>SYBMSDATE</b> = 40,
<br />
  <b>SYBMSTIME</b> = 41,
<b>SYBMSTIME</b> = 41,
<b>SYBMSDATETIME2</b> = 42,
<b>SYBMSDATETIME2</b> = 42,
<br />
  <b>SYBMSDATETIMEOFFSET</b> = 43,
<b>SYBMSDATETIMEOFFSET</b> = 43
<br />
}</td></tr>
<tr class="separator:ga06fc87d81c62e9abb8790b6e5713c55b"><td class="memSeparator" colspan="2"> </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:ga2d0a06c1a30dd2470dc7a788de21b080"><td class="memItemLeft" align="right" valign="top">static TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga2d0a06c1a30dd2470dc7a788de21b080">tds4_send_emulated_rpc</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, const char *rpc_name, <a class="el" href="a01183.html">TDSPARAMINFO</a> *params)</td></tr>
<tr class="memdesc:ga2d0a06c1a30dd2470dc7a788de21b080"><td class="mdescLeft"> </td><td class="mdescRight">Send RPC as string query. <a href="a00563.html#ga2d0a06c1a30dd2470dc7a788de21b080">More...</a><br /></td></tr>
<tr class="separator:ga2d0a06c1a30dd2470dc7a788de21b080"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga3a5d1771cacc947521c4077551f0d3a4"><td class="memItemLeft" align="right" valign="top">static char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga3a5d1771cacc947521c4077551f0d3a4">tds5_fix_dot_query</a> (const char *query, size_t *query_len, <a class="el" href="a01183.html">TDSPARAMINFO</a> *params)</td></tr>
<tr class="memdesc:ga3a5d1771cacc947521c4077551f0d3a4"><td class="mdescLeft"> </td><td class="mdescRight">Substitute ?-style placeholders with named (@param) ones. <a href="a00563.html#ga3a5d1771cacc947521c4077551f0d3a4">More...</a><br /></td></tr>
<tr class="separator:ga3a5d1771cacc947521c4077551f0d3a4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4f1f0a4f77bc4ea1440dfdebc19a157c"><td class="memItemLeft" align="right" valign="top">static TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga4f1f0a4f77bc4ea1440dfdebc19a157c">tds5_put_params</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a01183.html">TDSPARAMINFO</a> *info, int flags)</td></tr>
<tr class="memdesc:ga4f1f0a4f77bc4ea1440dfdebc19a157c"><td class="mdescLeft"> </td><td class="mdescRight">Send parameters to server. <a href="a00563.html#ga4f1f0a4f77bc4ea1440dfdebc19a157c">More...</a><br /></td></tr>
<tr class="separator:ga4f1f0a4f77bc4ea1440dfdebc19a157c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga08877c101704bebe4fa57e0849dc272d"><td class="memItemLeft" align="right" valign="top">TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga08877c101704bebe4fa57e0849dc272d">tds71_submit_prepexec</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, const char *query, const char *id, <a class="el" href="a00449.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> **dyn_out, <a class="el" href="a01183.html">TDSPARAMINFO</a> *params)</td></tr>
<tr class="memdesc:ga08877c101704bebe4fa57e0849dc272d"><td class="mdescLeft"> </td><td class="mdescRight">Creates a temporary stored procedure in the server and execute it. <a href="a00563.html#ga08877c101704bebe4fa57e0849dc272d">More...</a><br /></td></tr>
<tr class="separator:ga08877c101704bebe4fa57e0849dc272d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga4f5d3b730ad872cac4710e79808d44b5"><td class="memItemLeft" align="right" valign="top"><a id="ga4f5d3b730ad872cac4710e79808d44b5"></a>
static void </td><td class="memItemRight" valign="bottom"><b>tds7_put_cursor_fetch</b> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, TDS_INT cursor_id, TDS_TINYINT fetch_type, TDS_INT i_row, TDS_INT num_rows)</td></tr>
<tr class="separator:ga4f5d3b730ad872cac4710e79808d44b5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6e42b4a1d1d3898229ea2fe4afc2ecec"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga6e42b4a1d1d3898229ea2fe4afc2ecec">tds7_put_query_params</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, const char *query, size_t query_len)</td></tr>
<tr class="memdesc:ga6e42b4a1d1d3898229ea2fe4afc2ecec"><td class="mdescLeft"> </td><td class="mdescRight">Output params types and query (required by sp_prepare/sp_executesql/sp_prepexec) <a href="a00563.html#ga6e42b4a1d1d3898229ea2fe4afc2ecec">More...</a><br /></td></tr>
<tr class="separator:ga6e42b4a1d1d3898229ea2fe4afc2ecec"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9f6f25dd405f45e75420e6e084bf2d85"><td class="memItemLeft" align="right" valign="top">static TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga9f6f25dd405f45e75420e6e084bf2d85">tds7_send_execute</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a00449.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> *dyn)</td></tr>
<tr class="memdesc:ga9f6f25dd405f45e75420e6e084bf2d85"><td class="mdescLeft"> </td><td class="mdescRight">Send dynamic request on TDS 7+ to be executed. <a href="a00563.html#ga9f6f25dd405f45e75420e6e084bf2d85">More...</a><br /></td></tr>
<tr class="separator:ga9f6f25dd405f45e75420e6e084bf2d85"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6513afd79629f7a928e1d3da9f56dee1"><td class="memItemLeft" align="right" valign="top">static TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga6513afd79629f7a928e1d3da9f56dee1">tds7_write_param_def_from_params</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, const char *query, size_t query_len, <a class="el" href="a01183.html">TDSPARAMINFO</a> *params)</td></tr>
<tr class="memdesc:ga6513afd79629f7a928e1d3da9f56dee1"><td class="mdescLeft"> </td><td class="mdescRight">Write string with parameters definition, useful for TDS7+. <a href="a00563.html#ga6513afd79629f7a928e1d3da9f56dee1">More...</a><br /></td></tr>
<tr class="separator:ga6513afd79629f7a928e1d3da9f56dee1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga24345856c16b15aa3e84459c2f551320"><td class="memItemLeft" align="right" valign="top">static TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga24345856c16b15aa3e84459c2f551320">tds7_write_param_def_from_query</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, const char *converted_query, size_t converted_query_len, <a class="el" href="a01183.html">TDSPARAMINFO</a> *params)</td></tr>
<tr class="memdesc:ga24345856c16b15aa3e84459c2f551320"><td class="mdescLeft"> </td><td class="mdescRight">Write string with parameters definition, useful for TDS7+. <a href="a00563.html#ga24345856c16b15aa3e84459c2f551320">More...</a><br /></td></tr>
<tr class="separator:ga24345856c16b15aa3e84459c2f551320"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad05fc65e1d505c68d14c82b99a00e4eb"><td class="memItemLeft" align="right" valign="top">static size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#gad05fc65e1d505c68d14c82b99a00e4eb">tds_ascii_to_ucs2</a> (char *buffer, const char *buf)</td></tr>
<tr class="memdesc:gad05fc65e1d505c68d14c82b99a00e4eb"><td class="mdescLeft"> </td><td class="mdescRight">Accept an ASCII string, convert it to UCS2-LE The input is NUL-terminated, but the output does not contains the NUL. <a href="a00563.html#gad05fc65e1d505c68d14c82b99a00e4eb">More...</a><br /></td></tr>
<tr class="separator:gad05fc65e1d505c68d14c82b99a00e4eb"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga024bc5482366735070befd6f4af59f71"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga024bc5482366735070befd6f4af59f71">tds_convert_string</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a00983.html">TDSICONV</a> *char_conv, const char *s, int len, size_t *out_len)</td></tr>
<tr class="memdesc:ga024bc5482366735070befd6f4af59f71"><td class="mdescLeft"> </td><td class="mdescRight">Convert a string in an allocated buffer. <a href="a00563.html#ga024bc5482366735070befd6f4af59f71">More...</a><br /></td></tr>
<tr class="separator:ga024bc5482366735070befd6f4af59f71"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaaa7b4d37bf796019e72f25c6e7fe7bea"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#gaaa7b4d37bf796019e72f25c6e7fe7bea">tds_count_placeholders</a> (const char *query)</td></tr>
<tr class="memdesc:gaaa7b4d37bf796019e72f25c6e7fe7bea"><td class="mdescLeft"> </td><td class="mdescRight">Count the number of placeholders ('?') in a query. <a href="a00563.html#gaaa7b4d37bf796019e72f25c6e7fe7bea">More...</a><br /></td></tr>
<tr class="separator:gaaa7b4d37bf796019e72f25c6e7fe7bea"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga0cd19215e9169ea299a6c9cbf5b2fb60"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga0cd19215e9169ea299a6c9cbf5b2fb60">tds_count_placeholders_ucs2le</a> (const char *query, const char *query_end)</td></tr>
<tr class="memdesc:ga0cd19215e9169ea299a6c9cbf5b2fb60"><td class="mdescLeft"> </td><td class="mdescRight">Count the number of placeholders ('?') in a query. <a href="a00563.html#ga0cd19215e9169ea299a6c9cbf5b2fb60">More...</a><br /></td></tr>
<tr class="separator:ga0cd19215e9169ea299a6c9cbf5b2fb60"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2a64baaf4aa50ef601a49b801dfdaaf6"><td class="memItemLeft" align="right" valign="top">static bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga2a64baaf4aa50ef601a49b801dfdaaf6">tds_cursor_check_allocated</a> (<a class="el" href="a01231.html">TDSCONNECTION</a> *conn, <a class="el" href="a00449.html#afe061eb245f3006d93940a20415692a7">TDSCURSOR</a> *cursor)</td></tr>
<tr class="memdesc:ga2a64baaf4aa50ef601a49b801dfdaaf6"><td class="mdescLeft"> </td><td class="mdescRight">Check if a cursor is allocated into the server. <a href="a00563.html#ga2a64baaf4aa50ef601a49b801dfdaaf6">More...</a><br /></td></tr>
<tr class="separator:ga2a64baaf4aa50ef601a49b801dfdaaf6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gada22769a0a8593608044b99e8e7aecba"><td class="memItemLeft" align="right" valign="top"><a id="gada22769a0a8593608044b99e8e7aecba"></a>
TDSRET </td><td class="memItemRight" valign="bottom"><b>tds_cursor_close</b> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a00449.html#afe061eb245f3006d93940a20415692a7">TDSCURSOR</a> *cursor)</td></tr>
<tr class="separator:gada22769a0a8593608044b99e8e7aecba"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab25de0567ac096e8f8e88490eeddf562"><td class="memItemLeft" align="right" valign="top"><a id="gab25de0567ac096e8f8e88490eeddf562"></a>
TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#gab25de0567ac096e8f8e88490eeddf562">tds_cursor_dealloc</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a00449.html#afe061eb245f3006d93940a20415692a7">TDSCURSOR</a> *cursor)</td></tr>
<tr class="memdesc:gab25de0567ac096e8f8e88490eeddf562"><td class="mdescLeft"> </td><td class="mdescRight">Send a deallocation request to server. <br /></td></tr>
<tr class="separator:gab25de0567ac096e8f8e88490eeddf562"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga84615c3327f785292c101e2088028d4f"><td class="memItemLeft" align="right" valign="top"><a id="ga84615c3327f785292c101e2088028d4f"></a>
TDSRET </td><td class="memItemRight" valign="bottom"><b>tds_cursor_declare</b> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a00449.html#afe061eb245f3006d93940a20415692a7">TDSCURSOR</a> *cursor, <a class="el" href="a01183.html">TDSPARAMINFO</a> *params, int *something_to_send)</td></tr>
<tr class="separator:ga84615c3327f785292c101e2088028d4f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gac3f61db17041349b0d898e6fdfb3b6fc"><td class="memItemLeft" align="right" valign="top"><a id="gac3f61db17041349b0d898e6fdfb3b6fc"></a>
TDSRET </td><td class="memItemRight" valign="bottom"><b>tds_cursor_fetch</b> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a00449.html#afe061eb245f3006d93940a20415692a7">TDSCURSOR</a> *cursor, TDS_CURSOR_FETCH fetch_type, TDS_INT i_row)</td></tr>
<tr class="separator:gac3f61db17041349b0d898e6fdfb3b6fc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2a4992ce82e3f3dee59beee8f7d175fc"><td class="memItemLeft" align="right" valign="top"><a id="ga2a4992ce82e3f3dee59beee8f7d175fc"></a>
TDSRET </td><td class="memItemRight" valign="bottom"><b>tds_cursor_get_cursor_info</b> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a00449.html#afe061eb245f3006d93940a20415692a7">TDSCURSOR</a> *cursor, TDS_UINT *prow_number, TDS_UINT *prow_count)</td></tr>
<tr class="separator:ga2a4992ce82e3f3dee59beee8f7d175fc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf1b4372d890c0ab08afd2f4707a10d93"><td class="memItemLeft" align="right" valign="top"><a id="gaf1b4372d890c0ab08afd2f4707a10d93"></a>
TDSRET </td><td class="memItemRight" valign="bottom"><b>tds_cursor_open</b> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a00449.html#afe061eb245f3006d93940a20415692a7">TDSCURSOR</a> *cursor, <a class="el" href="a01183.html">TDSPARAMINFO</a> *params, int *something_to_send)</td></tr>
<tr class="separator:gaf1b4372d890c0ab08afd2f4707a10d93"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad717a70ff656a72ba819daab79c33bdb"><td class="memItemLeft" align="right" valign="top"><a id="gad717a70ff656a72ba819daab79c33bdb"></a>
TDSRET </td><td class="memItemRight" valign="bottom"><b>tds_cursor_setname</b> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a00449.html#afe061eb245f3006d93940a20415692a7">TDSCURSOR</a> *cursor)</td></tr>
<tr class="separator:gad717a70ff656a72ba819daab79c33bdb"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad0c04b7b170ef4c8de5a5fb9526cd031"><td class="memItemLeft" align="right" valign="top"><a id="gad0c04b7b170ef4c8de5a5fb9526cd031"></a>
TDSRET </td><td class="memItemRight" valign="bottom"><b>tds_cursor_setrows</b> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a00449.html#afe061eb245f3006d93940a20415692a7">TDSCURSOR</a> *cursor, int *something_to_send)</td></tr>
<tr class="separator:gad0c04b7b170ef4c8de5a5fb9526cd031"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae6c9d512bccc537638d60f987fd5a876"><td class="memItemLeft" align="right" valign="top"><a id="gae6c9d512bccc537638d60f987fd5a876"></a>
TDSRET </td><td class="memItemRight" valign="bottom"><b>tds_cursor_update</b> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a00449.html#afe061eb245f3006d93940a20415692a7">TDSCURSOR</a> *cursor, TDS_CURSOR_OPERATION op, TDS_INT i_row, <a class="el" href="a01183.html">TDSPARAMINFO</a> *params)</td></tr>
<tr class="separator:gae6c9d512bccc537638d60f987fd5a876"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga57bd0fabe5bcdeb3ef091259b3a7c1fc"><td class="memItemLeft" align="right" valign="top">TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga57bd0fabe5bcdeb3ef091259b3a7c1fc">tds_deferred_cursor_dealloc</a> (<a class="el" href="a01231.html">TDSCONNECTION</a> *conn, <a class="el" href="a00449.html#afe061eb245f3006d93940a20415692a7">TDSCURSOR</a> *cursor)</td></tr>
<tr class="memdesc:ga57bd0fabe5bcdeb3ef091259b3a7c1fc"><td class="mdescLeft"> </td><td class="mdescRight">Deallocate cursor on idle. <a href="a00563.html#ga57bd0fabe5bcdeb3ef091259b3a7c1fc">More...</a><br /></td></tr>
<tr class="separator:ga57bd0fabe5bcdeb3ef091259b3a7c1fc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9f80fdf732b084aef7de7a323261aa61"><td class="memItemLeft" align="right" valign="top">TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga9f80fdf732b084aef7de7a323261aa61">tds_deferred_unprepare</a> (<a class="el" href="a01231.html">TDSCONNECTION</a> *conn, <a class="el" href="a00449.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> *dyn)</td></tr>
<tr class="memdesc:ga9f80fdf732b084aef7de7a323261aa61"><td class="mdescLeft"> </td><td class="mdescRight">Unprepare dynamic on idle. <a href="a00563.html#ga9f80fdf732b084aef7de7a323261aa61">More...</a><br /></td></tr>
<tr class="separator:ga9f80fdf732b084aef7de7a323261aa61"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga328b6111fc8b1342924161a6f031d0db"><td class="memItemLeft" align="right" valign="top"><a id="ga328b6111fc8b1342924161a6f031d0db"></a>
TDSRET </td><td class="memItemRight" valign="bottom"><b>tds_disconnect</b> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds)</td></tr>
<tr class="separator:ga328b6111fc8b1342924161a6f031d0db"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga440f0f469afad1eac4c008979873ccdd"><td class="memItemLeft" align="right" valign="top"><a id="ga440f0f469afad1eac4c008979873ccdd"></a>
size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga440f0f469afad1eac4c008979873ccdd">tds_fix_column_size</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a01175.html">TDSCOLUMN</a> *curcol)</td></tr>
<tr class="memdesc:ga440f0f469afad1eac4c008979873ccdd"><td class="mdescLeft"> </td><td class="mdescRight">Get column size for wire. <br /></td></tr>
<tr class="separator:ga440f0f469afad1eac4c008979873ccdd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga50d62edeb2a432e2dc668263f3f958ff"><td class="memItemLeft" align="right" valign="top">TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga50d62edeb2a432e2dc668263f3f958ff">tds_get_column_declaration</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a01175.html">TDSCOLUMN</a> *curcol, char *out)</td></tr>
<tr class="memdesc:ga50d62edeb2a432e2dc668263f3f958ff"><td class="mdescLeft"> </td><td class="mdescRight">Return declaration for column (like "varchar(20)"). <a href="a00563.html#ga50d62edeb2a432e2dc668263f3f958ff">More...</a><br /></td></tr>
<tr class="separator:ga50d62edeb2a432e2dc668263f3f958ff"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae6a4ebe045344eee6562d5feab8d0db3"><td class="memItemLeft" align="right" valign="top"><a id="gae6a4ebe045344eee6562d5feab8d0db3"></a>
TDSRET </td><td class="memItemRight" valign="bottom"><b>tds_multiple_done</b> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a01211.html">TDSMULTIPLE</a> *multiple)</td></tr>
<tr class="separator:gae6a4ebe045344eee6562d5feab8d0db3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gade7a80a63c654b1df4e4cdb534b869b6"><td class="memItemLeft" align="right" valign="top"><a id="gade7a80a63c654b1df4e4cdb534b869b6"></a>
TDSRET </td><td class="memItemRight" valign="bottom"><b>tds_multiple_execute</b> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a01211.html">TDSMULTIPLE</a> *multiple, <a class="el" href="a00449.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> *dyn)</td></tr>
<tr class="separator:gade7a80a63c654b1df4e4cdb534b869b6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gadf810ffc809e9589d1eae14da09dd13f"><td class="memItemLeft" align="right" valign="top"><a id="gadf810ffc809e9589d1eae14da09dd13f"></a>
TDSRET </td><td class="memItemRight" valign="bottom"><b>tds_multiple_init</b> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a01211.html">TDSMULTIPLE</a> *multiple, TDS_MULTIPLE_TYPE type, <a class="el" href="a01147.html">TDSHEADERS</a> *head)</td></tr>
<tr class="separator:gadf810ffc809e9589d1eae14da09dd13f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2831db8f158c9bd31dfac08f63adffa5"><td class="memItemLeft" align="right" valign="top"><a id="ga2831db8f158c9bd31dfac08f63adffa5"></a>
TDSRET </td><td class="memItemRight" valign="bottom"><b>tds_multiple_query</b> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a01211.html">TDSMULTIPLE</a> *multiple, const char *query, <a class="el" href="a01183.html">TDSPARAMINFO</a> *params)</td></tr>
<tr class="separator:ga2831db8f158c9bd31dfac08f63adffa5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga05ac7bab753d19b6ba1ffc7505d8fcd0"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga05ac7bab753d19b6ba1ffc7505d8fcd0">tds_needs_unprepare</a> (<a class="el" href="a01231.html">TDSCONNECTION</a> *conn, <a class="el" href="a00449.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> *dyn)</td></tr>
<tr class="memdesc:ga05ac7bab753d19b6ba1ffc7505d8fcd0"><td class="mdescLeft"> </td><td class="mdescRight">Check if dynamic request must be unprepared. <a href="a00563.html#ga05ac7bab753d19b6ba1ffc7505d8fcd0">More...</a><br /></td></tr>
<tr class="separator:ga05ac7bab753d19b6ba1ffc7505d8fcd0"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga6455b2991afbf7da90270787f2059d31"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga6455b2991afbf7da90270787f2059d31">tds_next_placeholder</a> (const char *start)</td></tr>
<tr class="memdesc:ga6455b2991afbf7da90270787f2059d31"><td class="mdescLeft"> </td><td class="mdescRight">Get position of next placeholder. <a href="a00563.html#ga6455b2991afbf7da90270787f2059d31">More...</a><br /></td></tr>
<tr class="separator:ga6455b2991afbf7da90270787f2059d31"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaa823973b74efdf1ff00f340496bff614"><td class="memItemLeft" align="right" valign="top">static const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#gaa823973b74efdf1ff00f340496bff614">tds_next_placeholder_ucs2le</a> (const char *start, const char *end, int named)</td></tr>
<tr class="memdesc:gaa823973b74efdf1ff00f340496bff614"><td class="mdescLeft"> </td><td class="mdescRight">Found the next placeholder (? or @param) in a string. <a href="a00563.html#gaa823973b74efdf1ff00f340496bff614">More...</a><br /></td></tr>
<tr class="separator:gaa823973b74efdf1ff00f340496bff614"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab5f57c84183a5ab7b3f700396d464602"><td class="memItemLeft" align="right" valign="top"><a id="gab5f57c84183a5ab7b3f700396d464602"></a>
static TDSRET </td><td class="memItemRight" valign="bottom"><b>tds_put_char_param_as_string</b> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, const <a class="el" href="a01175.html">TDSCOLUMN</a> *curcol)</td></tr>
<tr class="separator:gab5f57c84183a5ab7b3f700396d464602"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9fcc0a3932dcad530511395ef8a767fb"><td class="memItemLeft" align="right" valign="top">static TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga9fcc0a3932dcad530511395ef8a767fb">tds_put_data</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a01175.html">TDSCOLUMN</a> *curcol)</td></tr>
<tr class="memdesc:ga9fcc0a3932dcad530511395ef8a767fb"><td class="mdescLeft"> </td><td class="mdescRight">Write data to wire. <a href="a00563.html#ga9fcc0a3932dcad530511395ef8a767fb">More...</a><br /></td></tr>
<tr class="separator:ga9fcc0a3932dcad530511395ef8a767fb"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gafd74652c4722ddce4d642cc4209449d4"><td class="memItemLeft" align="right" valign="top">static TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#gafd74652c4722ddce4d642cc4209449d4">tds_put_data_info</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a01175.html">TDSCOLUMN</a> *curcol, int flags)</td></tr>
<tr class="memdesc:gafd74652c4722ddce4d642cc4209449d4"><td class="mdescLeft"> </td><td class="mdescRight">Put data information to wire. <a href="a00563.html#gafd74652c4722ddce4d642cc4209449d4">More...</a><br /></td></tr>
<tr class="separator:gafd74652c4722ddce4d642cc4209449d4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga0e2e7230c425e925402d7856ff5b4b18"><td class="memItemLeft" align="right" valign="top">static TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga0e2e7230c425e925402d7856ff5b4b18">tds_put_param_as_string</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a01183.html">TDSPARAMINFO</a> *params, int n)</td></tr>
<tr class="memdesc:ga0e2e7230c425e925402d7856ff5b4b18"><td class="mdescLeft"> </td><td class="mdescRight">Send a parameter to server. <a href="a00563.html#ga0e2e7230c425e925402d7856ff5b4b18">More...</a><br /></td></tr>
<tr class="separator:ga0e2e7230c425e925402d7856ff5b4b18"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gada27f4cfce925240ad33b71b63ca692d"><td class="memItemLeft" align="right" valign="top">static TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#gada27f4cfce925240ad33b71b63ca692d">tds_query_flush_packet</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds)</td></tr>
<tr class="memdesc:gada27f4cfce925240ad33b71b63ca692d"><td class="mdescLeft"> </td><td class="mdescRight">Flush query packet. <a href="a00563.html#gada27f4cfce925240ad33b71b63ca692d">More...</a><br /></td></tr>
<tr class="separator:gada27f4cfce925240ad33b71b63ca692d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7efaa23c3b21158ffc963f85fbc3fdf4"><td class="memItemLeft" align="right" valign="top">static size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga7efaa23c3b21158ffc963f85fbc3fdf4">tds_quote</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, char *buffer, char quoting, const char *id, size_t len)</td></tr>
<tr class="memdesc:ga7efaa23c3b21158ffc963f85fbc3fdf4"><td class="mdescLeft"> </td><td class="mdescRight">Quote a string properly. <a href="a00563.html#ga7efaa23c3b21158ffc963f85fbc3fdf4">More...</a><br /></td></tr>
<tr class="separator:ga7efaa23c3b21158ffc963f85fbc3fdf4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga26b26296d060dca75f6a43e9ac41e58d"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga26b26296d060dca75f6a43e9ac41e58d">tds_quote_and_put</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, const char *s, const char *end)</td></tr>
<tr class="memdesc:ga26b26296d060dca75f6a43e9ac41e58d"><td class="mdescLeft"> </td><td class="mdescRight">Send a string to server while quoting it. <a href="a00563.html#ga26b26296d060dca75f6a43e9ac41e58d">More...</a><br /></td></tr>
<tr class="separator:ga26b26296d060dca75f6a43e9ac41e58d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga8d8f2f1c91635ee95f30722208ae3043"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga8d8f2f1c91635ee95f30722208ae3043">tds_quote_id</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, char *buffer, const char *id, int idlen)</td></tr>
<tr class="memdesc:ga8d8f2f1c91635ee95f30722208ae3043"><td class="mdescLeft"> </td><td class="mdescRight">Quote an id. <a href="a00563.html#ga8d8f2f1c91635ee95f30722208ae3043">More...</a><br /></td></tr>
<tr class="separator:ga8d8f2f1c91635ee95f30722208ae3043"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga691e8752f4f84ed51b7f4d1447cb3d25"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga691e8752f4f84ed51b7f4d1447cb3d25">tds_quote_id_rpc</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, char *buffer, const char *id, int idlen)</td></tr>
<tr class="memdesc:ga691e8752f4f84ed51b7f4d1447cb3d25"><td class="mdescLeft"> </td><td class="mdescRight">Quote an id for a RPC call. <a href="a00563.html#ga691e8752f4f84ed51b7f4d1447cb3d25">More...</a><br /></td></tr>
<tr class="separator:ga691e8752f4f84ed51b7f4d1447cb3d25"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga737b9fb9971fb425af5c722415ef0eac"><td class="memItemLeft" align="right" valign="top">size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga737b9fb9971fb425af5c722415ef0eac">tds_quote_string</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, char *buffer, const char *str, int len)</td></tr>
<tr class="memdesc:ga737b9fb9971fb425af5c722415ef0eac"><td class="mdescLeft"> </td><td class="mdescRight">Quote a string. <a href="a00563.html#ga737b9fb9971fb425af5c722415ef0eac">More...</a><br /></td></tr>
<tr class="separator:ga737b9fb9971fb425af5c722415ef0eac"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf5537955cc942a8465f227dc469b9bdd"><td class="memItemLeft" align="right" valign="top"><a id="gaf5537955cc942a8465f227dc469b9bdd"></a>
static void </td><td class="memItemRight" valign="bottom"><b>tds_quoteout_stream_init</b> (<a class="el" href="a00771.html">TDSQUOTEOUTSTREAM</a> *stream, <a class="el" href="a01235.html">TDSSOCKET</a> *tds)</td></tr>
<tr class="separator:gaf5537955cc942a8465f227dc469b9bdd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gabe1354ad96059678847986960a4a7095"><td class="memItemLeft" align="right" valign="top"><a id="gabe1354ad96059678847986960a4a7095"></a>
static int </td><td class="memItemRight" valign="bottom"><b>tds_quoteout_stream_write</b> (<a class="el" href="a01091.html">TDSOUTSTREAM</a> *stream, size_t len)</td></tr>
<tr class="separator:gabe1354ad96059678847986960a4a7095"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga11338742dc30fd0c2711f58eb830316f"><td class="memItemLeft" align="right" valign="top">TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga11338742dc30fd0c2711f58eb830316f">tds_send_cancel</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds)</td></tr>
<tr class="memdesc:ga11338742dc30fd0c2711f58eb830316f"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="a00563.html#ga11338742dc30fd0c2711f58eb830316f" title="tds_send_cancel() sends an empty packet (8 byte header only) tds_process_cancel should be called dire...">tds_send_cancel()</a> sends an empty packet (8 byte header only) tds_process_cancel should be called directly after this. <a href="a00563.html#ga11338742dc30fd0c2711f58eb830316f">More...</a><br /></td></tr>
<tr class="separator:ga11338742dc30fd0c2711f58eb830316f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga02c6ce3ff96369603a6ee4efee64caae"><td class="memItemLeft" align="right" valign="top"><a id="ga02c6ce3ff96369603a6ee4efee64caae"></a>
static TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga02c6ce3ff96369603a6ee4efee64caae">tds_send_emulated_execute</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, const char *query, <a class="el" href="a01183.html">TDSPARAMINFO</a> *params)</td></tr>
<tr class="memdesc:ga02c6ce3ff96369603a6ee4efee64caae"><td class="mdescLeft"> </td><td class="mdescRight">Emulate prepared execute traslating to a normal language. <br /></td></tr>
<tr class="separator:ga02c6ce3ff96369603a6ee4efee64caae"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga34fb1084682cc31fe02a4a7946955a5a"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga34fb1084682cc31fe02a4a7946955a5a">tds_set_cur_cursor</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a00449.html#afe061eb245f3006d93940a20415692a7">TDSCURSOR</a> *cursor)</td></tr>
<tr class="memdesc:ga34fb1084682cc31fe02a4a7946955a5a"><td class="mdescLeft"> </td><td class="mdescRight">Set current cursor. <a href="a00563.html#ga34fb1084682cc31fe02a4a7946955a5a">More...</a><br /></td></tr>
<tr class="separator:ga34fb1084682cc31fe02a4a7946955a5a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae8b7db85af16701fc0604eb117cbd4e4"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#gae8b7db85af16701fc0604eb117cbd4e4">tds_set_cur_dyn</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a00449.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> *dyn)</td></tr>
<tr class="memdesc:gae8b7db85af16701fc0604eb117cbd4e4"><td class="mdescLeft"> </td><td class="mdescRight">Set current dynamic. <a href="a00563.html#gae8b7db85af16701fc0604eb117cbd4e4">More...</a><br /></td></tr>
<tr class="separator:gae8b7db85af16701fc0604eb117cbd4e4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaac7347ba9380d77d726648b85e9fab8f"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#gaac7347ba9380d77d726648b85e9fab8f">tds_skip_comment</a> (const char *s)</td></tr>
<tr class="memdesc:gaac7347ba9380d77d726648b85e9fab8f"><td class="mdescLeft"> </td><td class="mdescRight">Skip a comment in a query. <a href="a00563.html#gaac7347ba9380d77d726648b85e9fab8f">More...</a><br /></td></tr>
<tr class="separator:gaac7347ba9380d77d726648b85e9fab8f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gab304fda9f325e852ba5c5252079d22e3"><td class="memItemLeft" align="right" valign="top">static const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#gab304fda9f325e852ba5c5252079d22e3">tds_skip_comment_ucs2le</a> (const char *s, const char *end)</td></tr>
<tr class="memdesc:gab304fda9f325e852ba5c5252079d22e3"><td class="mdescLeft"> </td><td class="mdescRight">Skip a comment in a query. <a href="a00563.html#gab304fda9f325e852ba5c5252079d22e3">More...</a><br /></td></tr>
<tr class="separator:gab304fda9f325e852ba5c5252079d22e3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5dbe51ce9533218f2da23f69ff63dda4"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga5dbe51ce9533218f2da23f69ff63dda4">tds_skip_quoted</a> (const char *s)</td></tr>
<tr class="memdesc:ga5dbe51ce9533218f2da23f69ff63dda4"><td class="mdescLeft"> </td><td class="mdescRight">Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd]) <a href="a00563.html#ga5dbe51ce9533218f2da23f69ff63dda4">More...</a><br /></td></tr>
<tr class="separator:ga5dbe51ce9533218f2da23f69ff63dda4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga2361ec4629aa0eac38f1702b03ed8185"><td class="memItemLeft" align="right" valign="top">static const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga2361ec4629aa0eac38f1702b03ed8185">tds_skip_quoted_ucs2le</a> (const char *s, const char *end)</td></tr>
<tr class="memdesc:ga2361ec4629aa0eac38f1702b03ed8185"><td class="mdescLeft"> </td><td class="mdescRight">Return pointer to end of a quoted string. <a href="a00563.html#ga2361ec4629aa0eac38f1702b03ed8185">More...</a><br /></td></tr>
<tr class="separator:ga2361ec4629aa0eac38f1702b03ed8185"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga0da385231bfa3dc49377e1fb2bea2c07"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga0da385231bfa3dc49377e1fb2bea2c07">tds_start_query</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, unsigned char packet_type)</td></tr>
<tr class="memdesc:ga0da385231bfa3dc49377e1fb2bea2c07"><td class="mdescLeft"> </td><td class="mdescRight">Start query packet of a given type. <a href="a00563.html#ga0da385231bfa3dc49377e1fb2bea2c07">More...</a><br /></td></tr>
<tr class="separator:ga0da385231bfa3dc49377e1fb2bea2c07"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9ad2e6defce530a8778791cce0166ccd"><td class="memItemLeft" align="right" valign="top">static TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga9ad2e6defce530a8778791cce0166ccd">tds_start_query_head</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, unsigned char packet_type, <a class="el" href="a01147.html">TDSHEADERS</a> *head)</td></tr>
<tr class="memdesc:ga9ad2e6defce530a8778791cce0166ccd"><td class="mdescLeft"> </td><td class="mdescRight">Start query packet of a given type. <a href="a00563.html#ga9ad2e6defce530a8778791cce0166ccd">More...</a><br /></td></tr>
<tr class="separator:ga9ad2e6defce530a8778791cce0166ccd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga7bf3670d3d6dabed469b9eb117298079"><td class="memItemLeft" align="right" valign="top">TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga7bf3670d3d6dabed469b9eb117298079">tds_submit_begin_tran</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds)</td></tr>
<tr class="memdesc:ga7bf3670d3d6dabed469b9eb117298079"><td class="mdescLeft"> </td><td class="mdescRight">Send a rollback request. <a href="a00563.html#ga7bf3670d3d6dabed469b9eb117298079">More...</a><br /></td></tr>
<tr class="separator:ga7bf3670d3d6dabed469b9eb117298079"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga530538c4c975524cf0b771a550fc94a3"><td class="memItemLeft" align="right" valign="top">TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga530538c4c975524cf0b771a550fc94a3">tds_submit_commit</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, int cont)</td></tr>
<tr class="memdesc:ga530538c4c975524cf0b771a550fc94a3"><td class="mdescLeft"> </td><td class="mdescRight">Send a commit request. <a href="a00563.html#ga530538c4c975524cf0b771a550fc94a3">More...</a><br /></td></tr>
<tr class="separator:ga530538c4c975524cf0b771a550fc94a3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gae603aed795a4c5bb26ab159a11256996"><td class="memItemLeft" align="right" valign="top">TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#gae603aed795a4c5bb26ab159a11256996">tds_submit_execdirect</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, const char *query, <a class="el" href="a01183.html">TDSPARAMINFO</a> *params, <a class="el" href="a01147.html">TDSHEADERS</a> *head)</td></tr>
<tr class="memdesc:gae603aed795a4c5bb26ab159a11256996"><td class="mdescLeft"> </td><td class="mdescRight">Submit a prepared query with parameters. <a href="a00563.html#gae603aed795a4c5bb26ab159a11256996">More...</a><br /></td></tr>
<tr class="separator:gae603aed795a4c5bb26ab159a11256996"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga3e7b4793c6f799fbc6c174f673bb5b32"><td class="memItemLeft" align="right" valign="top">TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga3e7b4793c6f799fbc6c174f673bb5b32">tds_submit_execute</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a00449.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> *dyn)</td></tr>
<tr class="memdesc:ga3e7b4793c6f799fbc6c174f673bb5b32"><td class="mdescLeft"> </td><td class="mdescRight">Sends a previously prepared dynamic statement to the server. <a href="a00563.html#ga3e7b4793c6f799fbc6c174f673bb5b32">More...</a><br /></td></tr>
<tr class="separator:ga3e7b4793c6f799fbc6c174f673bb5b32"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf0da49585d39e99780a004ee2ca23479"><td class="memItemLeft" align="right" valign="top">TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#gaf0da49585d39e99780a004ee2ca23479">tds_submit_optioncmd</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, TDS_OPTION_CMD command, TDS_OPTION option, <a class="el" href="a01127.html">TDS_OPTION_ARG</a> *param, TDS_INT param_size)</td></tr>
<tr class="memdesc:gaf0da49585d39e99780a004ee2ca23479"><td class="mdescLeft"> </td><td class="mdescRight">Send option commands to server. <a href="a00563.html#gaf0da49585d39e99780a004ee2ca23479">More...</a><br /></td></tr>
<tr class="separator:gaf0da49585d39e99780a004ee2ca23479"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga74eb08c3a1c85be8ac9db428842c8b9d"><td class="memItemLeft" align="right" valign="top">TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga74eb08c3a1c85be8ac9db428842c8b9d">tds_submit_prepare</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, const char *query, const char *id, <a class="el" href="a00449.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> **dyn_out, <a class="el" href="a01183.html">TDSPARAMINFO</a> *params)</td></tr>
<tr class="memdesc:ga74eb08c3a1c85be8ac9db428842c8b9d"><td class="mdescLeft"> </td><td class="mdescRight">Creates a temporary stored procedure in the server. <a href="a00563.html#ga74eb08c3a1c85be8ac9db428842c8b9d">More...</a><br /></td></tr>
<tr class="separator:ga74eb08c3a1c85be8ac9db428842c8b9d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5a29ae7f99d089dc3cea85ec6ee5f3ab"><td class="memItemLeft" align="right" valign="top">TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga5a29ae7f99d089dc3cea85ec6ee5f3ab">tds_submit_query</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, const char *query)</td></tr>
<tr class="memdesc:ga5a29ae7f99d089dc3cea85ec6ee5f3ab"><td class="mdescLeft"> </td><td class="mdescRight">Sends a language string to the database server for processing. <a href="a00563.html#ga5a29ae7f99d089dc3cea85ec6ee5f3ab">More...</a><br /></td></tr>
<tr class="separator:ga5a29ae7f99d089dc3cea85ec6ee5f3ab"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga95e0fccedc459a4404f496eec74a369a"><td class="memItemLeft" align="right" valign="top">TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga95e0fccedc459a4404f496eec74a369a">tds_submit_query_params</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, const char *query, <a class="el" href="a01183.html">TDSPARAMINFO</a> *params, <a class="el" href="a01147.html">TDSHEADERS</a> *head)</td></tr>
<tr class="memdesc:ga95e0fccedc459a4404f496eec74a369a"><td class="mdescLeft"> </td><td class="mdescRight">Sends a language string to the database server for processing. <a href="a00563.html#ga95e0fccedc459a4404f496eec74a369a">More...</a><br /></td></tr>
<tr class="separator:ga95e0fccedc459a4404f496eec74a369a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gad695defcbf663b0023851a198206a772"><td class="memItemLeft" align="right" valign="top">TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#gad695defcbf663b0023851a198206a772">tds_submit_queryf</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, const char *queryf,...)</td></tr>
<tr class="memdesc:gad695defcbf663b0023851a198206a772"><td class="mdescLeft"> </td><td class="mdescRight">Format and submit a query. <a href="a00563.html#gad695defcbf663b0023851a198206a772">More...</a><br /></td></tr>
<tr class="separator:gad695defcbf663b0023851a198206a772"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga9c1cdcc388506a2ca3c0aaee8c461ba6"><td class="memItemLeft" align="right" valign="top">TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga9c1cdcc388506a2ca3c0aaee8c461ba6">tds_submit_rollback</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, int cont)</td></tr>
<tr class="memdesc:ga9c1cdcc388506a2ca3c0aaee8c461ba6"><td class="mdescLeft"> </td><td class="mdescRight">Send a rollback request. <a href="a00563.html#ga9c1cdcc388506a2ca3c0aaee8c461ba6">More...</a><br /></td></tr>
<tr class="separator:ga9c1cdcc388506a2ca3c0aaee8c461ba6"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ga5f071b94ad7889690762dc85646c74ab"><td class="memItemLeft" align="right" valign="top">TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#ga5f071b94ad7889690762dc85646c74ab">tds_submit_rpc</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, const char *rpc_name, <a class="el" href="a01183.html">TDSPARAMINFO</a> *params, <a class="el" href="a01147.html">TDSHEADERS</a> *head)</td></tr>
<tr class="memdesc:ga5f071b94ad7889690762dc85646c74ab"><td class="mdescLeft"> </td><td class="mdescRight">Calls a RPC from server. <a href="a00563.html#ga5f071b94ad7889690762dc85646c74ab">More...</a><br /></td></tr>
<tr class="separator:ga5f071b94ad7889690762dc85646c74ab"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:gaf573d8d4d2660c8c27770573fca05ff5"><td class="memItemLeft" align="right" valign="top">TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00563.html#gaf573d8d4d2660c8c27770573fca05ff5">tds_submit_unprepare</a> (<a class="el" href="a01235.html">TDSSOCKET</a> *tds, <a class="el" href="a00449.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> *dyn)</td></tr>
<tr class="memdesc:gaf573d8d4d2660c8c27770573fca05ff5"><td class="mdescLeft"> </td><td class="mdescRight">Send a unprepare request for a prepared query. <a href="a00563.html#gaf573d8d4d2660c8c27770573fca05ff5">More...</a><br /></td></tr>
<tr class="separator:gaf573d8d4d2660c8c27770573fca05ff5"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ga9e1a467a38b4a012dbf003c06274ac48"><td class="memItemLeft" align="right" valign="top"><a id="ga9e1a467a38b4a012dbf003c06274ac48"></a>
static const <a class="el" href="a01215.html">TDSCONTEXT</a> </td><td class="memItemRight" valign="bottom"><b>empty_ctx</b> = {0}</td></tr>
<tr class="separator:ga9e1a467a38b4a012dbf003c06274ac48"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>Function to handle query. </p>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ga62c3dc9946acb3ffd1b7ae43424f5b47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga62c3dc9946acb3ffd1b7ae43424f5b47">◆ </a></span>TDS_PUT_N_AS_UCS2</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define TDS_PUT_N_AS_UCS2</td>
<td>(</td>
<td class="paramtype"> </td>
<td class="paramname">tds, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"> </td>
<td class="paramname">s </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"> <span class="keywordflow">do</span> { \</div>
<div class="line"> char buffer[<span class="keyword">sizeof</span>(s)*2-2]; \</div>
<div class="line"> tds_put_smallint(tds, <span class="keyword">sizeof</span>(buffer)/2); \</div>
<div class="line"> tds_put_n(tds, buffer, <a class="code" href="a00563.html#gad05fc65e1d505c68d14c82b99a00e4eb">tds_ascii_to_ucs2</a>(buffer, s)); \</div>
<div class="line">} <span class="keywordflow">while</span>(0)</div>
</div><!-- fragment -->
<p>Utility to convert a constant ascii string to ucs2 and send to server. </p>
<p>Used to send internal store procedure names to server. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">s</td><td>constanst string to send </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga2d0a06c1a30dd2470dc7a788de21b080"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2d0a06c1a30dd2470dc7a788de21b080">◆ </a></span>tds4_send_emulated_rpc()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static TDSRET tds4_send_emulated_rpc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>rpc_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a01183.html">TDSPARAMINFO</a> * </td>
<td class="paramname"><em>params</em> </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>Send RPC as string query. </p>
<p>This function is used on old protocol which does not support RPC queries. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">rpc_name</td><td>name of RPC to invoke </td></tr>
<tr><td class="paramname">params</td><td>parameters to send to server </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TDS_FAIL or TDS_SUCCESS </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 1 -->
</div>
</div>
</div>
</div>
<a id="ga3a5d1771cacc947521c4077551f0d3a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3a5d1771cacc947521c4077551f0d3a4">◆ </a></span>tds5_fix_dot_query()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static char* tds5_fix_dot_query </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>query</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t * </td>
<td class="paramname"><em>query_len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a01183.html">TDSPARAMINFO</a> * </td>
<td class="paramname"><em>params</em> </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>Substitute ?-style placeholders with named (@param) ones. </p>
<p>Sybase does not support ?-style placeholders so convert them. Also the function replace parameter names. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramdir"></td><td class="paramname">query</td><td>query string </td></tr>
<tr><td class="paramdir">[in,out]</td><td class="paramname">query_len</td><td>pointer to query length. On input length of input query, on output length of output query </td></tr>
<tr><td class="paramdir"></td><td class="paramname">params</td><td>parameters to send to server </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>new query or NULL on error </dd></dl>
</div>
</div>
<a id="ga4f1f0a4f77bc4ea1440dfdebc19a157c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4f1f0a4f77bc4ea1440dfdebc19a157c">◆ </a></span>tds5_put_params()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static TDSRET tds5_put_params </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a01183.html">TDSPARAMINFO</a> * </td>
<td class="paramname"><em>info</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>flags</em> </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>Send parameters to server. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">info</td><td>parameters to send </td></tr>
<tr><td class="paramname">flags</td><td>0 or TDS_PUT_DATA_USE_NAME </td></tr>
</table>
</dd>
</dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 2 -->
</div>
</div>
</div>
</div>
<a id="ga08877c101704bebe4fa57e0849dc272d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga08877c101704bebe4fa57e0849dc272d">◆ </a></span>tds71_submit_prepexec()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TDSRET tds71_submit_prepexec </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>query</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00449.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> ** </td>
<td class="paramname"><em>dyn_out</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a01183.html">TDSPARAMINFO</a> * </td>
<td class="paramname"><em>params</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a temporary stored procedure in the server and execute it. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>state information for the socket and the TDS protocol </td></tr>
<tr><td class="paramname">query</td><td>language query with given placeholders ('?') </td></tr>
<tr><td class="paramname">id</td><td>string to identify the dynamic query. Pass NULL for automatic generation. </td></tr>
<tr><td class="paramname">dyn_out</td><td>will receive allocated TDSDYNAMIC*. Any older allocated dynamic won't be freed. Can be NULL. </td></tr>
<tr><td class="paramname">params</td><td>parameters to use. It can be NULL even if parameters are present. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TDS_FAIL or TDS_SUCCESS </dd></dl>
</div>
</div>
<a id="ga6e42b4a1d1d3898229ea2fe4afc2ecec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6e42b4a1d1d3898229ea2fe4afc2ecec">◆ </a></span>tds7_put_query_params()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void tds7_put_query_params </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>query</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t </td>
<td class="paramname"><em>query_len</em> </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>Output params types and query (required by sp_prepare/sp_executesql/sp_prepexec) </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>state information for the socket and the TDS protocol </td></tr>
<tr><td class="paramname">query</td><td>query (encoded in ucs2le) </td></tr>
<tr><td class="paramname">query_len</td><td>query length in bytes </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga9f6f25dd405f45e75420e6e084bf2d85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9f6f25dd405f45e75420e6e084bf2d85">◆ </a></span>tds7_send_execute()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static TDSRET tds7_send_execute </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00449.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> * </td>
<td class="paramname"><em>dyn</em> </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>Send dynamic request on TDS 7+ to be executed. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">dyn</td><td>dynamic query to execute </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ga6513afd79629f7a928e1d3da9f56dee1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6513afd79629f7a928e1d3da9f56dee1">◆ </a></span>tds7_write_param_def_from_params()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static TDSRET tds7_write_param_def_from_params </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>query</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t </td>
<td class="paramname"><em>query_len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a01183.html">TDSPARAMINFO</a> * </td>
<td class="paramname"><em>params</em> </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>Write string with parameters definition, useful for TDS7+. </p>
<p>Looks like "@P1 INT, @P2 VARCHAR(100)" </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>state information for the socket and the TDS protocol </td></tr>
<tr><td class="paramname">query</td><td>query to send to server encoded in ucs2le </td></tr>
<tr><td class="paramname">query_len</td><td>query length in bytes </td></tr>
<tr><td class="paramname">params</td><td>parameters to build declaration </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>result of the operation </dd></dl>
</div>
</div>
<a id="ga24345856c16b15aa3e84459c2f551320"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga24345856c16b15aa3e84459c2f551320">◆ </a></span>tds7_write_param_def_from_query()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static TDSRET tds7_write_param_def_from_query </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>converted_query</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t </td>
<td class="paramname"><em>converted_query_len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a01183.html">TDSPARAMINFO</a> * </td>
<td class="paramname"><em>params</em> </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>Write string with parameters definition, useful for TDS7+. </p>
<p>Looks like "@P1 INT, @P2 VARCHAR(100)" </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>state information for the socket and the TDS protocol </td></tr>
<tr><td class="paramname">converted_query</td><td>query to send to server in ucs2le encoding </td></tr>
<tr><td class="paramname">converted_query_len</td><td>query length in bytes </td></tr>
<tr><td class="paramname">params</td><td>parameters to build declaration </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>result of write </dd></dl>
</div>
</div>
<a id="gad05fc65e1d505c68d14c82b99a00e4eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad05fc65e1d505c68d14c82b99a00e4eb">◆ </a></span>tds_ascii_to_ucs2()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static size_t tds_ascii_to_ucs2 </td>
<td>(</td>
<td class="paramtype">char * </td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>buf</em> </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>Accept an ASCII string, convert it to UCS2-LE The input is NUL-terminated, but the output does not contains the NUL. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">buffer</td><td>buffer where to store output </td></tr>
<tr><td class="paramname">buf</td><td>string to write </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>bytes written </dd></dl>
</div>
</div>
<a id="ga024bc5482366735070befd6f4af59f71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga024bc5482366735070befd6f4af59f71">◆ </a></span>tds_convert_string()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* tds_convert_string </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00983.html">TDSICONV</a> * </td>
<td class="paramname"><em>char_conv</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t * </td>
<td class="paramname"><em>out_len</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Convert a string in an allocated buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>state information for the socket and the TDS protocol </td></tr>
<tr><td class="paramname">char_conv</td><td>information about the encodings involved </td></tr>
<tr><td class="paramname">s</td><td>input string </td></tr>
<tr><td class="paramname">len</td><td>input string length (in bytes), -1 for NUL-terminated </td></tr>
<tr><td class="paramname">out_len</td><td>returned output length (in bytes) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>string allocated (or input pointer if no conversion required) or NULL if error </dd></dl>
</div>
</div>
<a id="gaaa7b4d37bf796019e72f25c6e7fe7bea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaaa7b4d37bf796019e72f25c6e7fe7bea">◆ </a></span>tds_count_placeholders()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int tds_count_placeholders </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>query</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Count the number of placeholders ('?') in a query. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">query</td><td>query string </td></tr>
</table>
</dd>
</dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 3 -->
</div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 4 -->
</div>
</div>
</div>
</div>
<a id="ga0cd19215e9169ea299a6c9cbf5b2fb60"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0cd19215e9169ea299a6c9cbf5b2fb60">◆ </a></span>tds_count_placeholders_ucs2le()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static int tds_count_placeholders_ucs2le </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>query</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>query_end</em> </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>Count the number of placeholders ('?') in a query. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">query</td><td>query encoded in ucs2le </td></tr>
<tr><td class="paramname">query_end</td><td>end of query </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>number of placeholders found </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 5 -->
</div>
</div>
</div>
</div>
<a id="ga2a64baaf4aa50ef601a49b801dfdaaf6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2a64baaf4aa50ef601a49b801dfdaaf6">◆ </a></span>tds_cursor_check_allocated()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static bool tds_cursor_check_allocated </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01231.html">TDSCONNECTION</a> * </td>
<td class="paramname"><em>conn</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00449.html#afe061eb245f3006d93940a20415692a7">TDSCURSOR</a> * </td>
<td class="paramname"><em>cursor</em> </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>Check if a cursor is allocated into the server. </p>
<p>If is not allocated it assures is removed from the connection list </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>true if allocated false otherwise </dd></dl>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 6 -->
</div>
</div>
</div>
</div>
<a id="ga57bd0fabe5bcdeb3ef091259b3a7c1fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga57bd0fabe5bcdeb3ef091259b3a7c1fc">◆ </a></span>tds_deferred_cursor_dealloc()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TDSRET tds_deferred_cursor_dealloc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01231.html">TDSCONNECTION</a> * </td>
<td class="paramname"><em>conn</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00449.html#afe061eb245f3006d93940a20415692a7">TDSCURSOR</a> * </td>
<td class="paramname"><em>cursor</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Deallocate cursor on idle. </p>
<p>This let libTDS close the cursor when possible. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">cursor</td><td>cursor to close </td></tr>
</table>
</dd>
</dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 7 -->
</div>
</div>
</div>
</div>
<a id="ga9f80fdf732b084aef7de7a323261aa61"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9f80fdf732b084aef7de7a323261aa61">◆ </a></span>tds_deferred_unprepare()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TDSRET tds_deferred_unprepare </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01231.html">TDSCONNECTION</a> * </td>
<td class="paramname"><em>conn</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00449.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> * </td>
<td class="paramname"><em>dyn</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Unprepare dynamic on idle. </p>
<p>This let libTDS close the prepared statement when possible. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">dyn</td><td>dynamic request to close </td></tr>
</table>
</dd>
</dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 8 -->
</div>
</div>
</div>
</div>
<a id="ga50d62edeb2a432e2dc668263f3f958ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga50d62edeb2a432e2dc668263f3f958ff">◆ </a></span>tds_get_column_declaration()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TDSRET tds_get_column_declaration </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a01175.html">TDSCOLUMN</a> * </td>
<td class="paramname"><em>curcol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char * </td>
<td class="paramname"><em>out</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Return declaration for column (like "varchar(20)"). </p>
<p>This depends on:</p><ul>
<li>on_server.column_type</li>
<li>varint_size (for varchar(max) distinction)</li>
<li>column_size</li>
<li>precision/scale (numeric)</li>
</ul>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">curcol</td><td>column </td></tr>
<tr><td class="paramname">out</td><td>buffer to hold declaration </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TDS_FAIL or TDS_SUCCESS </dd></dl>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 9 -->
</div>
</div>
</div>
</div>
<a id="ga05ac7bab753d19b6ba1ffc7505d8fcd0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga05ac7bab753d19b6ba1ffc7505d8fcd0">◆ </a></span>tds_needs_unprepare()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int tds_needs_unprepare </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01231.html">TDSCONNECTION</a> * </td>
<td class="paramname"><em>conn</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00449.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> * </td>
<td class="paramname"><em>dyn</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Check if dynamic request must be unprepared. </p>
<p>Depending on status and protocol version request should be unprepared or not. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">dyn</td><td>dynamic request to check </td></tr>
</table>
</dd>
</dl>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 10 -->
</div>
</div>
</div>
</div>
<a id="ga6455b2991afbf7da90270787f2059d31"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6455b2991afbf7da90270787f2059d31">◆ </a></span>tds_next_placeholder()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* tds_next_placeholder </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>start</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Get position of next placeholder. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">start</td><td>pointer to part of query to search </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>next placeholder or NULL if not found </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 11 -->
</div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 12 -->
</div>
</div>
</div>
</div>
<a id="gaa823973b74efdf1ff00f340496bff614"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa823973b74efdf1ff00f340496bff614">◆ </a></span>tds_next_placeholder_ucs2le()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static const char* tds_next_placeholder_ucs2le </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>start</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>end</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>named</em> </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>Found the next placeholder (? or @param) in a string. </p>
<p>String must be encoded in ucs2le. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">start</td><td>start of the string (or part of it) </td></tr>
<tr><td class="paramname">end</td><td>end of string </td></tr>
<tr><td class="paramname">named</td><td>true if named parameters should be returned </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>either start of next placeholder or end if not found </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 13 -->
</div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 14 -->
</div>
</div>
</div>
</div>
<a id="ga9fcc0a3932dcad530511395ef8a767fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9fcc0a3932dcad530511395ef8a767fb">◆ </a></span>tds_put_data()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static TDSRET tds_put_data </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a01175.html">TDSCOLUMN</a> * </td>
<td class="paramname"><em>curcol</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Write data to wire. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">curcol</td><td>column where store column information </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TDS_FAIL on error or TDS_SUCCESS </dd></dl>
</div>
</div>
<a id="gafd74652c4722ddce4d642cc4209449d4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafd74652c4722ddce4d642cc4209449d4">◆ </a></span>tds_put_data_info()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static TDSRET tds_put_data_info </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a01175.html">TDSCOLUMN</a> * </td>
<td class="paramname"><em>curcol</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>flags</em> </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>Put data information to wire. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>state information for the socket and the TDS protocol </td></tr>
<tr><td class="paramname">curcol</td><td>column where to store information </td></tr>
<tr><td class="paramname">flags</td><td>bit flags on how to send data (use TDS_PUT_DATA_USE_NAME for use name information) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TDS_SUCCESS or TDS_FAIL </dd></dl>
</div>
</div>
<a id="ga0e2e7230c425e925402d7856ff5b4b18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0e2e7230c425e925402d7856ff5b4b18">◆ </a></span>tds_put_param_as_string()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static TDSRET tds_put_param_as_string </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a01183.html">TDSPARAMINFO</a> * </td>
<td class="paramname"><em>params</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>n</em> </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>Send a parameter to server. </p>
<p>Parameters are converted to string and sent to server. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">params</td><td>parameters structure </td></tr>
<tr><td class="paramname">n</td><td>number of parameter to send </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TDS_FAIL or TDS_SUCCESS </dd></dl>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 15 -->
</div>
</div>
</div>
</div>
<a id="gada27f4cfce925240ad33b71b63ca692d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gada27f4cfce925240ad33b71b63ca692d">◆ </a></span>tds_query_flush_packet()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static TDSRET tds_query_flush_packet </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</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>Flush query packet. </p>
<p>Used at the end of packet write to really send packet to server. This also changes the state to TDS_PENDING. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
</table>
</dd>
</dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 16 -->
</div>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 17 -->
</div>
</div>
</div>
</div>
<a id="ga7efaa23c3b21158ffc963f85fbc3fdf4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7efaa23c3b21158ffc963f85fbc3fdf4">◆ </a></span>tds_quote()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static size_t tds_quote </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char * </td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char </td>
<td class="paramname"><em>quoting</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t </td>
<td class="paramname"><em>len</em> </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>Quote a string properly. </p>
<p>Output string is always NUL-terminated </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">buffer</td><td>output buffer. If NULL function will just return required bytes </td></tr>
<tr><td class="paramname">quoting</td><td>quote character (should be one of '\'', '"', ']') </td></tr>
<tr><td class="paramname">id</td><td>string to quote </td></tr>
<tr><td class="paramname">len</td><td>length of string to quote </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>size of output string </dd></dl>
</div>
</div>
<a id="ga26b26296d060dca75f6a43e9ac41e58d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga26b26296d060dca75f6a43e9ac41e58d">◆ </a></span>tds_quote_and_put()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void tds_quote_and_put </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>end</em> </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>Send a string to server while quoting it. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">s</td><td>string start </td></tr>
<tr><td class="paramname">end</td><td>string end </td></tr>
</table>
</dd>
</dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 18 -->
</div>
</div>
</div>
</div>
<a id="ga8d8f2f1c91635ee95f30722208ae3043"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8d8f2f1c91635ee95f30722208ae3043">◆ </a></span>tds_quote_id()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t tds_quote_id </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char * </td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>idlen</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Quote an id. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>state information for the socket and the TDS protocol </td></tr>
<tr><td class="paramname">buffer</td><td>buffer to store quoted id. If NULL do not write anything (useful to compute quote length) </td></tr>
<tr><td class="paramname">id</td><td>id to quote </td></tr>
<tr><td class="paramname">idlen</td><td>id length (< 0 for NUL terminated) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>written chars (not including needed terminator) </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00563.html#ga691e8752f4f84ed51b7f4d1447cb3d25" title="Quote an id for a RPC call.">tds_quote_id_rpc</a> </dd></dl>
</div>
</div>
<a id="ga691e8752f4f84ed51b7f4d1447cb3d25"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga691e8752f4f84ed51b7f4d1447cb3d25">◆ </a></span>tds_quote_id_rpc()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t tds_quote_id_rpc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char * </td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>idlen</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Quote an id for a RPC call. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>state information for the socket and the TDS protocol </td></tr>
<tr><td class="paramname">buffer</td><td>buffer to store quoted id. If NULL do not write anything (useful to compute quote length) </td></tr>
<tr><td class="paramname">id</td><td>id to quote </td></tr>
<tr><td class="paramname">idlen</td><td>id length (< 0 for NUL terminated) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>written chars (not including needed terminator) </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00563.html#ga8d8f2f1c91635ee95f30722208ae3043" title="Quote an id.">tds_quote_id</a> </dd></dl>
</div>
</div>
<a id="ga737b9fb9971fb425af5c722415ef0eac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga737b9fb9971fb425af5c722415ef0eac">◆ </a></span>tds_quote_string()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t tds_quote_string </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char * </td>
<td class="paramname"><em>buffer</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>str</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>len</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Quote a string. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>state information for the socket and the TDS protocol </td></tr>
<tr><td class="paramname">buffer</td><td>buffer to store quoted id. If NULL do not write anything (useful to compute quote length) </td></tr>
<tr><td class="paramname">str</td><td>string to quote (not necessary NUL-terminated) </td></tr>
<tr><td class="paramname">len</td><td>length of string (-1 for NUL-terminated) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>written chars (not including needed terminator) </dd></dl>
</div>
</div>
<a id="ga11338742dc30fd0c2711f58eb830316f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga11338742dc30fd0c2711f58eb830316f">◆ </a></span>tds_send_cancel()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TDSRET tds_send_cancel </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p><a class="el" href="a00563.html#ga11338742dc30fd0c2711f58eb830316f" title="tds_send_cancel() sends an empty packet (8 byte header only) tds_process_cancel should be called dire...">tds_send_cancel()</a> sends an empty packet (8 byte header only) tds_process_cancel should be called directly after this. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>state information for the socket and the TDS protocol </td></tr>
</table>
</dd>
</dl>
<dl class="section remark"><dt>Remarks</dt><dd>tcp will either deliver the packet or time out. (TIME_WAIT determines how long it waits between retries.) <br />
</dd></dl>
<p>On sending the cancel, we may get EAGAIN. We then select(2) until we know either 1) it succeeded or 2) it didn't. On failure, close the socket, tell the app, and fail the function. <br />
</p>
<p>On success, we read(2) and wait for a reply with select(2). If we get one, great. If the client's timeout expires, we tell him, but all we can do is wait some more or give up and close the connection. If he tells us to cancel again, we wait some more. <br />
</p>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 19 -->
</div>
</div>
</div>
</div>
<a id="ga34fb1084682cc31fe02a4a7946955a5a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga34fb1084682cc31fe02a4a7946955a5a">◆ </a></span>tds_set_cur_cursor()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static void tds_set_cur_cursor </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00449.html#afe061eb245f3006d93940a20415692a7">TDSCURSOR</a> * </td>
<td class="paramname"><em>cursor</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Set current cursor. </p>
<p>Current cursor is the one will receive output from server. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">cursor</td><td>cursor to set as current </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gae8b7db85af16701fc0604eb117cbd4e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae8b7db85af16701fc0604eb117cbd4e4">◆ </a></span>tds_set_cur_dyn()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void tds_set_cur_dyn </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00449.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> * </td>
<td class="paramname"><em>dyn</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Set current dynamic. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">dyn</td><td>dynamic to set </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="gaac7347ba9380d77d726648b85e9fab8f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaac7347ba9380d77d726648b85e9fab8f">◆ </a></span>tds_skip_comment()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* tds_skip_comment </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Skip a comment in a query. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">s</td><td>start of the string (or part of it) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to end of comment </dd></dl>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 20 -->
</div>
</div>
</div>
</div>
<a id="gab304fda9f325e852ba5c5252079d22e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab304fda9f325e852ba5c5252079d22e3">◆ </a></span>tds_skip_comment_ucs2le()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static const char* tds_skip_comment_ucs2le </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>end</em> </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>Skip a comment in a query. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">s</td><td>start of the string (or part of it). Encoded in ucs2le </td></tr>
<tr><td class="paramname">end</td><td>end of string </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to end of comment </dd></dl>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 21 -->
</div>
</div>
</div>
</div>
<a id="ga5dbe51ce9533218f2da23f69ff63dda4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5dbe51ce9533218f2da23f69ff63dda4">◆ </a></span>tds_skip_quoted()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* tds_skip_quoted </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>s</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd]) </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">s</td><td>pointer to first quoting character.<pre class="fragment">Should be ', " or [. </pre> </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>character after quoting </dd></dl>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 22 -->
</div>
</div>
</div>
</div>
<a id="ga2361ec4629aa0eac38f1702b03ed8185"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2361ec4629aa0eac38f1702b03ed8185">◆ </a></span>tds_skip_quoted_ucs2le()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static const char* tds_skip_quoted_ucs2le </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>end</em> </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>Return pointer to end of a quoted string. </p>
<p>At the beginning pointer should point to delimiter. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">s</td><td>start of string to skip encoded in ucs2le </td></tr>
<tr><td class="paramname">end</td><td>pointer to end of string </td></tr>
</table>
</dd>
</dl>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 23 -->
</div>
</div>
</div>
</div>
<a id="ga0da385231bfa3dc49377e1fb2bea2c07"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga0da385231bfa3dc49377e1fb2bea2c07">◆ </a></span>tds_start_query()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void tds_start_query </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char </td>
<td class="paramname"><em>packet_type</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Start query packet of a given type. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">packet_type</td><td>packet type </td></tr>
</table>
</dd>
</dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 24 -->
</div>
</div>
</div>
</div>
<a id="ga9ad2e6defce530a8778791cce0166ccd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9ad2e6defce530a8778791cce0166ccd">◆ </a></span>tds_start_query_head()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static TDSRET tds_start_query_head </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">unsigned char </td>
<td class="paramname"><em>packet_type</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a01147.html">TDSHEADERS</a> * </td>
<td class="paramname"><em>head</em> </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>Start query packet of a given type. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">packet_type</td><td>packet type </td></tr>
<tr><td class="paramname">head</td><td>extra information to put in a TDS7 header </td></tr>
</table>
</dd>
</dl>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 25 -->
</div>
</div>
</div>
</div>
<a id="ga7bf3670d3d6dabed469b9eb117298079"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7bf3670d3d6dabed469b9eb117298079">◆ </a></span>tds_submit_begin_tran()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TDSRET tds_submit_begin_tran </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Send a rollback request. </p>
<p>TDS 7.2+ need this in order to handle transactions correctly if MARS is used. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00563.html#ga530538c4c975524cf0b771a550fc94a3" title="Send a commit request.">tds_submit_commit</a>, <a class="el" href="a00563.html#ga9c1cdcc388506a2ca3c0aaee8c461ba6" title="Send a rollback request.">tds_submit_rollback</a> </dd></dl>
</div>
</div>
<a id="ga530538c4c975524cf0b771a550fc94a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga530538c4c975524cf0b771a550fc94a3">◆ </a></span>tds_submit_commit()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TDSRET tds_submit_commit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>cont</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Send a commit request. </p>
<p>TDS 7.2+ need this in order to handle transactions correctly if MARS is used. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">cont</td><td>true to start a new transaction </td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00563.html#ga9c1cdcc388506a2ca3c0aaee8c461ba6" title="Send a rollback request.">tds_submit_rollback</a>, <a class="el" href="a00563.html#ga7bf3670d3d6dabed469b9eb117298079" title="Send a rollback request.">tds_submit_begin_tran</a> </dd></dl>
</div>
</div>
<a id="gae603aed795a4c5bb26ab159a11256996"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae603aed795a4c5bb26ab159a11256996">◆ </a></span>tds_submit_execdirect()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TDSRET tds_submit_execdirect </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>query</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a01183.html">TDSPARAMINFO</a> * </td>
<td class="paramname"><em>params</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a01147.html">TDSHEADERS</a> * </td>
<td class="paramname"><em>head</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Submit a prepared query with parameters. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>state information for the socket and the TDS protocol </td></tr>
<tr><td class="paramname">query</td><td>language query with given placeholders (?) </td></tr>
<tr><td class="paramname">params</td><td>parameters to send </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TDS_FAIL or TDS_SUCCESS </dd></dl>
</div>
</div>
<a id="ga3e7b4793c6f799fbc6c174f673bb5b32"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3e7b4793c6f799fbc6c174f673bb5b32">◆ </a></span>tds_submit_execute()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TDSRET tds_submit_execute </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00449.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> * </td>
<td class="paramname"><em>dyn</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sends a previously prepared dynamic statement to the server. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>state information for the socket and the TDS protocol </td></tr>
<tr><td class="paramname">dyn</td><td>dynamic proc to execute. Must build from same tds. </td></tr>
</table>
</dd>
</dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 26 -->
</div>
</div>
</div>
</div>
<a id="gaf0da49585d39e99780a004ee2ca23479"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf0da49585d39e99780a004ee2ca23479">◆ </a></span>tds_submit_optioncmd()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TDSRET tds_submit_optioncmd </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">TDS_OPTION_CMD </td>
<td class="paramname"><em>command</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">TDS_OPTION </td>
<td class="paramname"><em>option</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a01127.html">TDS_OPTION_ARG</a> * </td>
<td class="paramname"><em>param</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">TDS_INT </td>
<td class="paramname"><em>param_size</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Send option commands to server. </p>
<p>Option commands are used to change server options. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">command</td><td>command type. </td></tr>
<tr><td class="paramname">option</td><td>option to set/get. </td></tr>
<tr><td class="paramname">param</td><td>parameter value </td></tr>
<tr><td class="paramname">param_size</td><td>length of parameter value in bytes </td></tr>
</table>
</dd>
</dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 27 -->
</div>
</div>
</div>
</div>
<a id="ga74eb08c3a1c85be8ac9db428842c8b9d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga74eb08c3a1c85be8ac9db428842c8b9d">◆ </a></span>tds_submit_prepare()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TDSRET tds_submit_prepare </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>query</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>id</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00449.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> ** </td>
<td class="paramname"><em>dyn_out</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a01183.html">TDSPARAMINFO</a> * </td>
<td class="paramname"><em>params</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a temporary stored procedure in the server. </p>
<p>Under TDS 4.2 dynamic statements are emulated building sql command. TDS 5 does not uses parameters type. TDS 7+ uses parameter types to prepare the query. You should prepare again the query if parameters changes. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>state information for the socket and the TDS protocol </td></tr>
<tr><td class="paramname">query</td><td>language query with given placeholders (?) </td></tr>
<tr><td class="paramname">id</td><td>string to identify the dynamic query. Pass NULL for automatic generation. </td></tr>
<tr><td class="paramname">dyn_out</td><td>will receive allocated TDSDYNAMIC*. Any older allocated dynamic won't be freed, Can be NULL. </td></tr>
<tr><td class="paramname">params</td><td>parameters to use. It can be NULL even if parameters are present. Used only for TDS7+ </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TDS_FAIL or TDS_SUCCESS </dd></dl>
</div>
</div>
<a id="ga5a29ae7f99d089dc3cea85ec6ee5f3ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5a29ae7f99d089dc3cea85ec6ee5f3ab">◆ </a></span>tds_submit_query()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TDSRET tds_submit_query </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>query</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sends a language string to the database server for processing. </p>
<p>TDS 4.2 is a plain text message with a packet type of 0x01, TDS 7.0 is a unicode string with packet type 0x01, and TDS 5.0 uses a TDS_LANGUAGE_TOKEN to encapsulate the query and a packet type of 0x0f. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">query</td><td>language query to submit </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TDS_FAIL or TDS_SUCCESS </dd></dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 28 -->
</div>
</div>
</div>
</div>
<a id="ga95e0fccedc459a4404f496eec74a369a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga95e0fccedc459a4404f496eec74a369a">◆ </a></span>tds_submit_query_params()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TDSRET tds_submit_query_params </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>query</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a01183.html">TDSPARAMINFO</a> * </td>
<td class="paramname"><em>params</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a01147.html">TDSHEADERS</a> * </td>
<td class="paramname"><em>head</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sends a language string to the database server for processing. </p>
<p>TDS 4.2 is a plain text message with a packet type of 0x01, TDS 7.0 is a unicode string with packet type 0x01, and TDS 5.0 uses a TDS_LANGUAGE_TOKEN to encapsulate the query and a packet type of 0x0f. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">query</td><td>language query to submit </td></tr>
<tr><td class="paramname">params</td><td>parameters of query </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TDS_FAIL or TDS_SUCCESS </dd></dl>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 29 -->
</div>
</div>
</div>
</div>
<a id="gad695defcbf663b0023851a198206a772"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad695defcbf663b0023851a198206a772">◆ </a></span>tds_submit_queryf()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TDSRET tds_submit_queryf </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>queryf</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"> </td>
<td class="paramname"><em>...</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Format and submit a query. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">queryf</td><td>query format. printf like expansion is performed on this query. </td></tr>
</table>
</dd>
</dl>
<div class="dynheader">
Here is the caller graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 30 -->
</div>
</div>
</div>
</div>
<a id="ga9c1cdcc388506a2ca3c0aaee8c461ba6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9c1cdcc388506a2ca3c0aaee8c461ba6">◆ </a></span>tds_submit_rollback()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TDSRET tds_submit_rollback </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">int </td>
<td class="paramname"><em>cont</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Send a rollback request. </p>
<p>TDS 7.2+ need this in order to handle transactions correctly if MARS is used. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>A pointer to the TDSSOCKET structure managing a client/server operation. </td></tr>
<tr><td class="paramname">cont</td><td>true to start a new transaction </td></tr>
</table>
</dd>
</dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="a00563.html#ga7bf3670d3d6dabed469b9eb117298079" title="Send a rollback request.">tds_submit_begin_tran</a>, <a class="el" href="a00563.html#ga530538c4c975524cf0b771a550fc94a3" title="Send a commit request.">tds_submit_commit</a> </dd></dl>
</div>
</div>
<a id="ga5f071b94ad7889690762dc85646c74ab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga5f071b94ad7889690762dc85646c74ab">◆ </a></span>tds_submit_rpc()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TDSRET tds_submit_rpc </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char * </td>
<td class="paramname"><em>rpc_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a01183.html">TDSPARAMINFO</a> * </td>
<td class="paramname"><em>params</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a01147.html">TDSHEADERS</a> * </td>
<td class="paramname"><em>head</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Calls a RPC from server. </p>
<p>Output parameters will be stored in tds->param_info. </p><dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>state information for the socket and the TDS protocol </td></tr>
<tr><td class="paramname">rpc_name</td><td>name of RPC </td></tr>
<tr><td class="paramname">params</td><td>parameters informations. NULL for no parameters </td></tr>
</table>
</dd>
</dl>
<div class="dynheader">
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><!-- SVG 31 -->
</div>
</div>
</div>
</div>
<a id="gaf573d8d4d2660c8c27770573fca05ff5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf573d8d4d2660c8c27770573fca05ff5">◆ </a></span>tds_submit_unprepare()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">TDSRET tds_submit_unprepare </td>
<td>(</td>
<td class="paramtype"><a class="el" href="a01235.html">TDSSOCKET</a> * </td>
<td class="paramname"><em>tds</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="a00449.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> * </td>
<td class="paramname"><em>dyn</em> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Send a unprepare request for a prepared query. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">tds</td><td>state information for the socket and the TDS protocol </td></tr>
<tr><td class="paramname">dyn</td><td>dynamic query </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TDS_SUCCESS or TDS_FAIL </dd></dl>
</div>
</div>
</div><!-- contents -->
<div class="ttc" id="aa00563_html_gad05fc65e1d505c68d14c82b99a00e4eb"><div class="ttname"><a href="a00563.html#gad05fc65e1d505c68d14c82b99a00e4eb">tds_ascii_to_ucs2</a></div><div class="ttdeci">static size_t tds_ascii_to_ucs2(char *buffer, const char *buf)</div><div class="ttdoc">Accept an ASCII string, convert it to UCS2-LE The input is NUL-terminated, but the output does not co...</div><div class="ttdef"><b>Definition:</b> query.c:91</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by <a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
</small></address>
</body>
</html>