Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > ce0cb4aec597dde3226843045ded906f > files > 210

freetds-doc-0.91-1.fc14.x86_64.rpm

<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>FreeTDS API: Query</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.3 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <img id="MSearchSelect" src="search/search.png"
             onmouseover="return searchBox.OnSearchSelectShow()"
             onmouseout="return searchBox.OnSearchSelectHide()"
             alt=""/>
        <input type="text" id="MSearchField" value="Search" accesskey="S"
             onfocus="searchBox.OnSearchFieldFocus(true)" 
             onblur="searchBox.OnSearchFieldFocus(false)" 
             onkeyup="searchBox.OnSearchFieldChange(event)"/>
        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
        </div>
      </li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>Query<br/>
<small>
[<a class="el" href="a00305.html">LibTDS API</a>]</small>
</h1>
<p>Function to handle query.  
<a href="#_details">More...</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>START_QUERY</b></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga953e9737e46ce863c7f6434d163053b0"></a><!-- doxytag: member="query::tds_convert_string_free" ref="ga953e9737e46ce863c7f6434d163053b0" args="(original, converted)" -->
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_convert_string_free</b>(original, converted)&nbsp;&nbsp;&nbsp;do { if (original != converted) free((char*) converted); } while(0)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>TDS_PUT_N_AS_UCS2</b>(tds, s)</td></tr>
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <b>MUL_STARTED</b> =  1
 }</td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3a5d1771cacc947521c4077551f0d3a4"></a><!-- doxytag: member="query::tds5_fix_dot_query" ref="ga3a5d1771cacc947521c4077551f0d3a4" args="(const char *query, size_t *query_len, TDSPARAMINFO *params)" -->
static char *&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds5_fix_dot_query</b> (const char *query, size_t *query_len, <a class="el" href="a00118.html">TDSPARAMINFO</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#gac8d5497c2d1b9fadb724111660bd03bd">tds7_build_param_def_from_params</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, const char *query, size_t query_len, <a class="el" href="a00118.html">TDSPARAMINFO</a> *params, size_t *out_len)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return string with parameters definition, useful for TDS7+.  <a href="#gac8d5497c2d1b9fadb724111660bd03bd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#gab775332d378c7fe083750d624441b303">tds7_build_param_def_from_query</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, const char *converted_query, size_t converted_query_len, <a class="el" href="a00118.html">TDSPARAMINFO</a> *params, size_t *out_len)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return string with parameters definition, useful for TDS7+.  <a href="#gab775332d378c7fe083750d624441b303"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4f5d3b730ad872cac4710e79808d44b5"></a><!-- doxytag: member="query::tds7_put_cursor_fetch" ref="ga4f5d3b730ad872cac4710e79808d44b5" args="(TDSSOCKET *tds, TDS_INT cursor_id, TDS_TINYINT fetch_type, TDS_INT i_row, TDS_INT num_rows)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds7_put_cursor_fetch</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, TDS_INT cursor_id, TDS_TINYINT fetch_type, TDS_INT i_row, TDS_INT num_rows)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0f0b6bf447e9672e3b1ea8453ddeb113"></a><!-- doxytag: member="query::tds7_put_params_definition" ref="ga0f0b6bf447e9672e3b1ea8453ddeb113" args="(TDSSOCKET *tds, const char *param_definition, size_t param_length)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds7_put_params_definition</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, const char *param_definition, size_t param_length)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#ga6e42b4a1d1d3898229ea2fe4afc2ecec">tds7_put_query_params</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, const char *query, size_t query_len)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Output params types and query (required by sp_prepare/sp_executesql/sp_prepexec).  <a href="#ga6e42b4a1d1d3898229ea2fe4afc2ecec"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab71e2dc686eafe926dbebbce00d27dc4"></a><!-- doxytag: member="query::tds7_send_execute" ref="gab71e2dc686eafe926dbebbce00d27dc4" args="(TDSSOCKET *tds, TDSDYNAMIC *dyn)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds7_send_execute</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00101.html">TDSDYNAMIC</a> *dyn)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#ga7bcb0511f7aa947a47949a635bee5e70">tds8_submit_prepexec</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, const char *query, const char *id, <a class="el" href="a00101.html">TDSDYNAMIC</a> **dyn_out, <a class="el" href="a00118.html">TDSPARAMINFO</a> *params)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="a00301.html#ga7bcb0511f7aa947a47949a635bee5e70" title="tds8_submit_prepexec() creates a temporary stored procedure in the server.">tds8_submit_prepexec()</a> creates a temporary stored procedure in the server.  <a href="#ga7bcb0511f7aa947a47949a635bee5e70"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#gad05fc65e1d505c68d14c82b99a00e4eb">tds_ascii_to_ucs2</a> (char *buffer, const char *buf)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Accept an ASCII string, convert it to UCS2-LE The input is null-terminated, but the output excludes the null.  <a href="#gad05fc65e1d505c68d14c82b99a00e4eb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#ga9d4142518b49ec02591e6dbef37384a9">tds_convert_string</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, const <a class="el" href="a00130.html">TDSICONV</a> *char_conv, const char *s, int len, size_t *out_len)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert a string in an allocated buffer.  <a href="#ga9d4142518b49ec02591e6dbef37384a9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaaa7b4d37bf796019e72f25c6e7fe7bea"></a><!-- doxytag: member="query::tds_count_placeholders" ref="gaaa7b4d37bf796019e72f25c6e7fe7bea" args="(const char *query)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#gaaa7b4d37bf796019e72f25c6e7fe7bea">tds_count_placeholders</a> (const char *query)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Count the number of placeholders in query. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga0cd19215e9169ea299a6c9cbf5b2fb60"></a><!-- doxytag: member="query::tds_count_placeholders_ucs2le" ref="ga0cd19215e9169ea299a6c9cbf5b2fb60" args="(const char *query, const char *query_end)" -->
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_count_placeholders_ucs2le</b> (const char *query, const char *query_end)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1bedea06f0f443fddec3ebb565ccde98"></a><!-- doxytag: member="query::tds_cursor_close" ref="ga1bedea06f0f443fddec3ebb565ccde98" args="(TDSSOCKET *tds, TDSCURSOR *cursor)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_cursor_close</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00096.html">TDSCURSOR</a> *cursor)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab39882fd832a0723b8ae909b5cc7b5ee"></a><!-- doxytag: member="query::tds_cursor_dealloc" ref="gab39882fd832a0723b8ae909b5cc7b5ee" args="(TDSSOCKET *tds, TDSCURSOR *cursor)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#gab39882fd832a0723b8ae909b5cc7b5ee">tds_cursor_dealloc</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00096.html">TDSCURSOR</a> *cursor)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send a deallocation request to server libTDS care for all deallocation stuff (memory and server cursor) Caller should not use cursor pointer anymore. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5058895f8d17033c94e1941a57644c47"></a><!-- doxytag: member="query::tds_cursor_declare" ref="ga5058895f8d17033c94e1941a57644c47" args="(TDSSOCKET *tds, TDSCURSOR *cursor, TDSPARAMINFO *params, int *something_to_send)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_cursor_declare</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00096.html">TDSCURSOR</a> *cursor, <a class="el" href="a00118.html">TDSPARAMINFO</a> *params, int *something_to_send)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab8c8ddbe8b4afbc64820e50b44d0e150"></a><!-- doxytag: member="query::tds_cursor_fetch" ref="gab8c8ddbe8b4afbc64820e50b44d0e150" args="(TDSSOCKET *tds, TDSCURSOR *cursor, TDS_CURSOR_FETCH fetch_type, TDS_INT i_row)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_cursor_fetch</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00096.html">TDSCURSOR</a> *cursor, TDS_CURSOR_FETCH fetch_type, TDS_INT i_row)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2a290f4ff47231bc94287f09f959a8f7"></a><!-- doxytag: member="query::tds_cursor_get_cursor_info" ref="ga2a290f4ff47231bc94287f09f959a8f7" args="(TDSSOCKET *tds, TDSCURSOR *cursor, TDS_UINT *prow_number, TDS_UINT *prow_count)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_cursor_get_cursor_info</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00096.html">TDSCURSOR</a> *cursor, TDS_UINT *prow_number, TDS_UINT *prow_count)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga083779c6df6a983d97f745525c17d637"></a><!-- doxytag: member="query::tds_cursor_open" ref="ga083779c6df6a983d97f745525c17d637" args="(TDSSOCKET *tds, TDSCURSOR *cursor, TDSPARAMINFO *params, int *something_to_send)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_cursor_open</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00096.html">TDSCURSOR</a> *cursor, <a class="el" href="a00118.html">TDSPARAMINFO</a> *params, int *something_to_send)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7afbe3593f592f0bb67971fab940cd80"></a><!-- doxytag: member="query::tds_cursor_setname" ref="ga7afbe3593f592f0bb67971fab940cd80" args="(TDSSOCKET *tds, TDSCURSOR *cursor)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_cursor_setname</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00096.html">TDSCURSOR</a> *cursor)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga27985943930e8f0fcb6a5ed90ed850df"></a><!-- doxytag: member="query::tds_cursor_setrows" ref="ga27985943930e8f0fcb6a5ed90ed850df" args="(TDSSOCKET *tds, TDSCURSOR *cursor, int *something_to_send)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_cursor_setrows</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00096.html">TDSCURSOR</a> *cursor, int *something_to_send)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf689d26008a5dcbce3795f31361befe9"></a><!-- doxytag: member="query::tds_cursor_update" ref="gaf689d26008a5dcbce3795f31361befe9" args="(TDSSOCKET *tds, TDSCURSOR *cursor, TDS_CURSOR_OPERATION op, TDS_INT i_row, TDSPARAMINFO *params)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_cursor_update</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00096.html">TDSCURSOR</a> *cursor, TDS_CURSOR_OPERATION op, TDS_INT i_row, <a class="el" href="a00118.html">TDSPARAMINFO</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2c71061bc181e3eb62221df8620b0abe"></a><!-- doxytag: member="query::tds_fix_column_size" ref="ga2c71061bc181e3eb62221df8620b0abe" args="(TDSSOCKET *tds, TDSCOLUMN *curcol)" -->
static size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#ga2c71061bc181e3eb62221df8620b0abe">tds_fix_column_size</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00092.html">TDSCOLUMN</a> *curcol)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get column size for wire. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#ga44411d55174fda1a511e4b2030eac390">tds_get_column_declaration</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00092.html">TDSCOLUMN</a> *curcol, char *out)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return declaration for column (like "varchar(20)").  <a href="#ga44411d55174fda1a511e4b2030eac390"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gad385e8020eea835736b08bce6072b6ee"></a><!-- doxytag: member="query::tds_multiple_done" ref="gad385e8020eea835736b08bce6072b6ee" args="(TDSSOCKET *tds, TDSMULTIPLE *multiple)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_multiple_done</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00110.html">TDSMULTIPLE</a> *multiple)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga66ab2dcddcd56171a26c2156ed28a966"></a><!-- doxytag: member="query::tds_multiple_execute" ref="ga66ab2dcddcd56171a26c2156ed28a966" args="(TDSSOCKET *tds, TDSMULTIPLE *multiple, TDSDYNAMIC *dyn)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_multiple_execute</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00110.html">TDSMULTIPLE</a> *multiple, <a class="el" href="a00101.html">TDSDYNAMIC</a> *dyn)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga8a0426bf588101747579c37674735fca"></a><!-- doxytag: member="query::tds_multiple_init" ref="ga8a0426bf588101747579c37674735fca" args="(TDSSOCKET *tds, TDSMULTIPLE *multiple, TDS_MULTIPLE_TYPE type)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_multiple_init</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00110.html">TDSMULTIPLE</a> *multiple, TDS_MULTIPLE_TYPE type)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga1406c75207601fed31b8539124262a09"></a><!-- doxytag: member="query::tds_multiple_query" ref="ga1406c75207601fed31b8539124262a09" args="(TDSSOCKET *tds, TDSMULTIPLE *multiple, const char *query, TDSPARAMINFO *params)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_multiple_query</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00110.html">TDSMULTIPLE</a> *multiple, const char *query, <a class="el" href="a00118.html">TDSPARAMINFO</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga78cb0ea4a650730ed97b017198111f6f"></a><!-- doxytag: member="query::tds_needs_unprepare" ref="ga78cb0ea4a650730ed97b017198111f6f" args="(TDSSOCKET *tds, TDSDYNAMIC *dyn)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_needs_unprepare</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00101.html">TDSDYNAMIC</a> *dyn)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#ga6455b2991afbf7da90270787f2059d31">tds_next_placeholder</a> (const char *start)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get position of next placeholder.  <a href="#ga6455b2991afbf7da90270787f2059d31"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa823973b74efdf1ff00f340496bff614"></a><!-- doxytag: member="query::tds_next_placeholder_ucs2le" ref="gaa823973b74efdf1ff00f340496bff614" args="(const char *start, const char *end, int named)" -->
static const char *&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_next_placeholder_ucs2le</b> (const char *start, const char *end, int named)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#ga9b055d0c615dbdd612c978c9c0fc4edc">tds_put_data</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00092.html">TDSCOLUMN</a> *curcol)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write data to wire.  <a href="#ga9b055d0c615dbdd612c978c9c0fc4edc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#ga796b3e03db912b52ad968acf70d2ab5e">tds_put_data_info</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00092.html">TDSCOLUMN</a> *curcol, int flags)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Put data information to wire.  <a href="#ga796b3e03db912b52ad968acf70d2ab5e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#ga319d610d59b2cc669b7fe20c793122af">tds_put_data_info_length</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00092.html">TDSCOLUMN</a> *curcol, int flags)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Calc information length in bytes (useful for calculating full packet length).  <a href="#ga319d610d59b2cc669b7fe20c793122af"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga705da0515f6f127b830b2961fc6d6ac7"></a><!-- doxytag: member="query::tds_put_param_as_string" ref="ga705da0515f6f127b830b2961fc6d6ac7" args="(TDSSOCKET *tds, TDSPARAMINFO *params, int n)" -->
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_put_param_as_string</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00118.html">TDSPARAMINFO</a> *params, int n)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga28264995cf9616661f1fa788ac0d246d"></a><!-- doxytag: member="query::tds_put_params" ref="ga28264995cf9616661f1fa788ac0d246d" args="(TDSSOCKET *tds, TDSPARAMINFO *info, int flags)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_put_params</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00118.html">TDSPARAMINFO</a> *info, int flags)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaf6ee73c7d7895cb44a9b22a5fab377dd"></a><!-- doxytag: member="query::tds_query_flush_packet" ref="gaf6ee73c7d7895cb44a9b22a5fab377dd" args="(TDSSOCKET *tds)" -->
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_query_flush_packet</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga5782771e5941554d2fd9b305879e7f6f"></a><!-- doxytag: member="query::tds_quote" ref="ga5782771e5941554d2fd9b305879e7f6f" args="(TDSSOCKET *tds, char *buffer, char quoting, const char *id, int len)" -->
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_quote</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, char *buffer, char quoting, const char *id, int len)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga26b26296d060dca75f6a43e9ac41e58d"></a><!-- doxytag: member="query::tds_quote_and_put" ref="ga26b26296d060dca75f6a43e9ac41e58d" args="(TDSSOCKET *tds, const char *s, const char *end)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_quote_and_put</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, const char *s, const char *end)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#ga45e25770929784d202528b5ba1a5766e">tds_quote_id</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, char *buffer, const char *id, int idlen)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Quote an id.  <a href="#ga45e25770929784d202528b5ba1a5766e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#ga0e89161b16aa6664bd9aec6b35505099">tds_quote_string</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, char *buffer, const char *str, int len)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Quote a string.  <a href="#ga0e89161b16aa6664bd9aec6b35505099"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#gaef0e9c7e5ba94fc3a8281bbddd291e50">tds_send_cancel</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="a00301.html#gaef0e9c7e5ba94fc3a8281bbddd291e50" title="tds_send_cancel() sends an empty packet (8 byte header only) tds_process_cancel should...">tds_send_cancel()</a> sends an empty packet (8 byte header only) tds_process_cancel should be called directly after this.  <a href="#gaef0e9c7e5ba94fc3a8281bbddd291e50"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga4597367fc6d17ce3379622f81deefdb6"></a><!-- doxytag: member="query::tds_send_emulated_execute" ref="ga4597367fc6d17ce3379622f81deefdb6" args="(TDSSOCKET *tds, const char *query, TDSPARAMINFO *params)" -->
static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#ga4597367fc6d17ce3379622f81deefdb6">tds_send_emulated_execute</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, const char *query, <a class="el" href="a00118.html">TDSPARAMINFO</a> *params)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Emulate prepared execute traslating to a normal language. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2d1ab37e416e5d52877606907c040809"></a><!-- doxytag: member="query::tds_send_emulated_rpc" ref="ga2d1ab37e416e5d52877606907c040809" args="(TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params)" -->
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_send_emulated_rpc</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, const char *rpc_name, <a class="el" href="a00118.html">TDSPARAMINFO</a> *params)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga34fb1084682cc31fe02a4a7946955a5a"></a><!-- doxytag: member="query::tds_set_cur_cursor" ref="ga34fb1084682cc31fe02a4a7946955a5a" args="(TDSSOCKET *tds, TDSCURSOR *cursor)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_set_cur_cursor</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00096.html">TDSCURSOR</a> *cursor)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga3f5b73d56078c13d652a097e0d1efd13"></a><!-- doxytag: member="query::tds_skip_comment" ref="ga3f5b73d56078c13d652a097e0d1efd13" args="(const char *s)" -->
static const char *&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_skip_comment</b> (const char *s)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gab304fda9f325e852ba5c5252079d22e3"></a><!-- doxytag: member="query::tds_skip_comment_ucs2le" ref="gab304fda9f325e852ba5c5252079d22e3" args="(const char *s, const char *end)" -->
static const char *&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_skip_comment_ucs2le</b> (const char *s, const char *end)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#ga5dbe51ce9533218f2da23f69ff63dda4">tds_skip_quoted</a> (const char *s)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd]).  <a href="#ga5dbe51ce9533218f2da23f69ff63dda4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga2361ec4629aa0eac38f1702b03ed8185"></a><!-- doxytag: member="query::tds_skip_quoted_ucs2le" ref="ga2361ec4629aa0eac38f1702b03ed8185" args="(const char *s, const char *end)" -->
static const char *&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_skip_quoted_ucs2le</b> (const char *s, const char *end)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7bc9f5219e1ce90fdb5ef4edc85d51fc"></a><!-- doxytag: member="query::tds_start_query" ref="ga7bc9f5219e1ce90fdb5ef4edc85d51fc" args="(TDSSOCKET *tds)" -->
static void&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_start_query</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#gaecce368b287eeec2d797a377ae91aabd">tds_submit_execdirect</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, const char *query, <a class="el" href="a00118.html">TDSPARAMINFO</a> *params)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Submit a prepared query with parameters.  <a href="#gaecce368b287eeec2d797a377ae91aabd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#ga1f3152b885df683498620e91142ec8f3">tds_submit_execute</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00101.html">TDSDYNAMIC</a> *dyn)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="a00301.html#ga1f3152b885df683498620e91142ec8f3" title="tds_submit_execute() sends a previously prepared dynamic statement to the server...">tds_submit_execute()</a> sends a previously prepared dynamic statement to the server.  <a href="#ga1f3152b885df683498620e91142ec8f3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gaa29a958368c5259b92f566cbc2b19929"></a><!-- doxytag: member="query::tds_submit_optioncmd" ref="gaa29a958368c5259b92f566cbc2b19929" args="(TDSSOCKET *tds, TDS_OPTION_CMD command, TDS_OPTION option, TDS_OPTION_ARG *param, TDS_INT param_size)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_submit_optioncmd</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00159.html#a113928faf73e15b0e0a70b1026e90320">TDS_OPTION_CMD</a> command, TDS_OPTION option, <a class="el" href="a00112.html">TDS_OPTION_ARG</a> *param, TDS_INT param_size)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#ga2120b8c0c11dfae2a755244fa77ff5dc">tds_submit_prepare</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, const char *query, const char *id, <a class="el" href="a00101.html">TDSDYNAMIC</a> **dyn_out, <a class="el" href="a00118.html">TDSPARAMINFO</a> *params)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="a00301.html#ga2120b8c0c11dfae2a755244fa77ff5dc" title="tds_submit_prepare() creates a temporary stored procedure in the server.">tds_submit_prepare()</a> creates a temporary stored procedure in the server.  <a href="#ga2120b8c0c11dfae2a755244fa77ff5dc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#ga49926242495661c63cc42820a5f530c6">tds_submit_query</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, const char *query)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="a00301.html#ga49926242495661c63cc42820a5f530c6" title="tds_submit_query() sends a language string to the database server for processing...">tds_submit_query()</a> sends a language string to the database server for processing.  <a href="#ga49926242495661c63cc42820a5f530c6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#gaf5fc35439e704b403e865fa0ed755091">tds_submit_query_params</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, const char *query, <a class="el" href="a00118.html">TDSPARAMINFO</a> *params)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="a00301.html#gaf5fc35439e704b403e865fa0ed755091" title="tds_submit_query_params() sends a language string to the database server for processing...">tds_submit_query_params()</a> sends a language string to the database server for processing.  <a href="#gaf5fc35439e704b403e865fa0ed755091"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="gafa0f6aa233650073ed32e3a83aae9fd1"></a><!-- doxytag: member="query::tds_submit_queryf" ref="gafa0f6aa233650073ed32e3a83aae9fd1" args="(TDSSOCKET *tds, const char *queryf,...)" -->
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_submit_queryf</b> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, const char *queryf,...)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#gaa01973d616c941df3766098585d8cc35">tds_submit_rpc</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, const char *rpc_name, <a class="el" href="a00118.html">TDSPARAMINFO</a> *params)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="a00301.html#gaa01973d616c941df3766098585d8cc35" title="tds_submit_rpc() call a RPC from server.">tds_submit_rpc()</a> call a RPC from server.  <a href="#gaa01973d616c941df3766098585d8cc35"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00301.html#ga549c6fdf63ca94aad9d8025290283d95">tds_submit_unprepare</a> (<a class="el" href="a00122.html">TDSSOCKET</a> *tds, <a class="el" href="a00101.html">TDSDYNAMIC</a> *dyn)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Send a unprepare request for a prepared query.  <a href="#ga549c6fdf63ca94aad9d8025290283d95"></a><br/></td></tr>
<tr><td colspan="2"><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const TDS_UCHAR&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds9_query_start</b> []</td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Function to handle query. </p>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="ga13f100ca348dde571122c573b578a564"></a><!-- doxytag: member="query.c::START_QUERY" ref="ga13f100ca348dde571122c573b578a564" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define START_QUERY</td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> { \
        <span class="keywordflow">if</span> (IS_TDS72_PLUS(tds)) \
                tds_start_query(tds); \
} <span class="keywordflow">while</span>(0)
</pre></div>
</div>
</div>
<a class="anchor" id="ga62c3dc9946acb3ffd1b7ae43424f5b47"></a><!-- doxytag: member="query.c::TDS_PUT_N_AS_UCS2" ref="ga62c3dc9946acb3ffd1b7ae43424f5b47" args="(tds, s)" -->
<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">tds, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">s&nbsp;</td>
          <td class="paramname"></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Value:</b><div class="fragment"><pre class="fragment"><span class="keywordflow">do</span> { \
        <span class="keywordtype">char</span> buffer[<span class="keyword">sizeof</span>(s)*2-2]; \
        tds_put_n(tds, buffer, <a class="code" href="a00301.html#gad05fc65e1d505c68d14c82b99a00e4eb" title="Accept an ASCII string, convert it to UCS2-LE The input is null-terminated, but the...">tds_ascii_to_ucs2</a>(buffer, s)); \
} <span class="keywordflow">while</span>(0)
</pre></div>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="gac8d5497c2d1b9fadb724111660bd03bd"></a><!-- doxytag: member="query.c::tds7_build_param_def_from_params" ref="gac8d5497c2d1b9fadb724111660bd03bd" args="(TDSSOCKET *tds, const char *query, size_t query_len, TDSPARAMINFO *params, size_t *out_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char * tds7_build_param_def_from_params </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00122.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="paramname"> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>query</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>query_len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00118.html">TDSPARAMINFO</a> *&nbsp;</td>
          <td class="paramname"> <em>params</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&nbsp;</td>
          <td class="paramname"> <em>out_len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return string with parameters definition, useful for TDS7+. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tds</em>&nbsp;</td><td>state information for the socket and the TDS protocol </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>params</em>&nbsp;</td><td>parameters to build declaration </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out_len</em>&nbsp;</td><td>length output buffer in bytes </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>allocated and filled string or NULL on failure (coded in ucs2le charset ) </dd></dl>

</div>
</div>
<a class="anchor" id="gab775332d378c7fe083750d624441b303"></a><!-- doxytag: member="query.c::tds7_build_param_def_from_query" ref="gab775332d378c7fe083750d624441b303" args="(TDSSOCKET *tds, const char *converted_query, size_t converted_query_len, TDSPARAMINFO *params, size_t *out_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static char * tds7_build_param_def_from_query </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00122.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="paramname"> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>converted_query</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</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="a00118.html">TDSPARAMINFO</a> *&nbsp;</td>
          <td class="paramname"> <em>params</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&nbsp;</td>
          <td class="paramname"> <em>out_len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return string with parameters definition, useful for TDS7+. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tds</em>&nbsp;</td><td>state information for the socket and the TDS protocol </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>params</em>&nbsp;</td><td>parameters to build declaration </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out_len</em>&nbsp;</td><td>length output buffer in bytes </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>allocated and filled string or NULL on failure (coded in ucs2le charset ) </dd></dl>

</div>
</div>
<a class="anchor" id="ga6e42b4a1d1d3898229ea2fe4afc2ecec"></a><!-- doxytag: member="query.c::tds7_put_query_params" ref="ga6e42b4a1d1d3898229ea2fe4afc2ecec" args="(TDSSOCKET *tds, const char *query, size_t query_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static void tds7_put_query_params </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00122.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="paramname"> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>query</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&nbsp;</td>
          <td class="paramname"> <em>query_len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Output params types and query (required by sp_prepare/sp_executesql/sp_prepexec). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tds</em>&nbsp;</td><td>state information for the socket and the TDS protocol </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>query</em>&nbsp;</td><td>query (in ucs2le codings) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>query_len</em>&nbsp;</td><td>query length in bytes </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga7bcb0511f7aa947a47949a635bee5e70"></a><!-- doxytag: member="query.c::tds8_submit_prepexec" ref="ga7bcb0511f7aa947a47949a635bee5e70" args="(TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tds8_submit_prepexec </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00122.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="paramname"> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>query</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00101.html">TDSDYNAMIC</a> **&nbsp;</td>
          <td class="paramname"> <em>dyn_out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00118.html">TDSPARAMINFO</a> *&nbsp;</td>
          <td class="paramname"> <em>params</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="a00301.html#ga7bcb0511f7aa947a47949a635bee5e70" title="tds8_submit_prepexec() creates a temporary stored procedure in the server.">tds8_submit_prepexec()</a> creates a temporary stored procedure in the server. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tds</em>&nbsp;</td><td>state information for the socket and the TDS protocol </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>query</em>&nbsp;</td><td>language query with given placeholders (?) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>string to identify the dynamic query. Pass NULL for automatic generation. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dyn_out</em>&nbsp;</td><td>will receive allocated TDSDYNAMIC*. Any older allocated dynamic won't be freed, Can be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>params</em>&nbsp;</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="return"><dt><b>Returns:</b></dt><dd>TDS_FAIL or TDS_SUCCEED </dd></dl>

</div>
</div>
<a class="anchor" id="gad05fc65e1d505c68d14c82b99a00e4eb"></a><!-- doxytag: member="query.c::tds_ascii_to_ucs2" ref="gad05fc65e1d505c68d14c82b99a00e4eb" args="(char *buffer, const char *buf)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static size_t tds_ascii_to_ucs2 </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>buf</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Accept an ASCII string, convert it to UCS2-LE The input is null-terminated, but the output excludes the null. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>buffer where to store output </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>string to write </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>bytes written </dd></dl>

</div>
</div>
<a class="anchor" id="ga9d4142518b49ec02591e6dbef37384a9"></a><!-- doxytag: member="query.c::tds_convert_string" ref="ga9d4142518b49ec02591e6dbef37384a9" args="(TDSSOCKET *tds, const TDSICONV *char_conv, const char *s, int len, size_t *out_len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static const char* tds_convert_string </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00122.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="paramname"> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="a00130.html">TDSICONV</a> *&nbsp;</td>
          <td class="paramname"> <em>char_conv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t *&nbsp;</td>
          <td class="paramname"> <em>out_len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Convert a string in an allocated buffer. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tds</em>&nbsp;</td><td>state information for the socket and the TDS protocol </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>char_conv</em>&nbsp;</td><td>information about the encodings involved </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>input string </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>input string length (in bytes), -1 for null terminated </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out_len</em>&nbsp;</td><td>returned output length (in bytes) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>string allocated (or input pointer if no conversion required) or NULL if error </dd></dl>

</div>
</div>
<a class="anchor" id="ga44411d55174fda1a511e4b2030eac390"></a><!-- doxytag: member="query.c::tds_get_column_declaration" ref="ga44411d55174fda1a511e4b2030eac390" args="(TDSSOCKET *tds, TDSCOLUMN *curcol, char *out)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int tds_get_column_declaration </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00122.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="paramname"> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00092.html">TDSCOLUMN</a> *&nbsp;</td>
          <td class="paramname"> <em>curcol</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>out</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Return declaration for column (like "varchar(20)"). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tds</em>&nbsp;</td><td>state information for the socket and the TDS protocol </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>curcol</em>&nbsp;</td><td>column </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>out</em>&nbsp;</td><td>buffer to hold declaration </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>TDS_FAIL or TDS_SUCCEED </dd></dl>

</div>
</div>
<a class="anchor" id="ga6455b2991afbf7da90270787f2059d31"></a><!-- doxytag: member="query.c::tds_next_placeholder" ref="ga6455b2991afbf7da90270787f2059d31" args="(const char *start)" -->
<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 *&nbsp;</td>
          <td class="paramname"> <em>start</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Get position of next placeholder. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>start</em>&nbsp;</td><td>pointer to part of query to search </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>next placeholder or NULL if not found </dd></dl>

</div>
</div>
<a class="anchor" id="ga9b055d0c615dbdd612c978c9c0fc4edc"></a><!-- doxytag: member="query.c::tds_put_data" ref="ga9b055d0c615dbdd612c978c9c0fc4edc" args="(TDSSOCKET *tds, TDSCOLUMN *curcol)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int tds_put_data </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00122.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="paramname"> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00092.html">TDSCOLUMN</a> *&nbsp;</td>
          <td class="paramname"> <em>curcol</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Write data to wire. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tds</em>&nbsp;</td><td>state information for the socket and the TDS protocol </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>curcol</em>&nbsp;</td><td>column where store column information </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>TDS_FAIL on error or TDS_SUCCEED </dd></dl>

</div>
</div>
<a class="anchor" id="ga796b3e03db912b52ad968acf70d2ab5e"></a><!-- doxytag: member="query.c::tds_put_data_info" ref="ga796b3e03db912b52ad968acf70d2ab5e" args="(TDSSOCKET *tds, TDSCOLUMN *curcol, int flags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int tds_put_data_info </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00122.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="paramname"> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00092.html">TDSCOLUMN</a> *&nbsp;</td>
          <td class="paramname"> <em>curcol</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>flags</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Put data information to wire. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tds</em>&nbsp;</td><td>state information for the socket and the TDS protocol </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>curcol</em>&nbsp;</td><td>column where to store information </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</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="return"><dt><b>Returns:</b></dt><dd>TDS_SUCCEED or TDS_FAIL </dd></dl>

</div>
</div>
<a class="anchor" id="ga319d610d59b2cc669b7fe20c793122af"></a><!-- doxytag: member="query.c::tds_put_data_info_length" ref="ga319d610d59b2cc669b7fe20c793122af" args="(TDSSOCKET *tds, TDSCOLUMN *curcol, int flags)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int tds_put_data_info_length </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00122.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="paramname"> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00092.html">TDSCOLUMN</a> *&nbsp;</td>
          <td class="paramname"> <em>curcol</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>flags</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Calc information length in bytes (useful for calculating full packet length). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tds</em>&nbsp;</td><td>state information for the socket and the TDS protocol </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>curcol</em>&nbsp;</td><td>column where to store information </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>flags</em>&nbsp;</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="return"><dt><b>Returns:</b></dt><dd>TDS_SUCCEED or TDS_FAIL </dd></dl>

</div>
</div>
<a class="anchor" id="ga45e25770929784d202528b5ba1a5766e"></a><!-- doxytag: member="query.c::tds_quote_id" ref="ga45e25770929784d202528b5ba1a5766e" args="(TDSSOCKET *tds, char *buffer, const char *id, int idlen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tds_quote_id </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00122.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="paramname"> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>idlen</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Quote an id. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tds</em>&nbsp;</td><td>state information for the socket and the TDS protocol </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>buffer to store quoted id. If NULL do not write anything (useful to compute quote length) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>id to quote </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>idlen</em>&nbsp;</td><td>id length </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>written chars (not including needed terminator) </dd></dl>

</div>
</div>
<a class="anchor" id="ga0e89161b16aa6664bd9aec6b35505099"></a><!-- doxytag: member="query.c::tds_quote_string" ref="ga0e89161b16aa6664bd9aec6b35505099" args="(TDSSOCKET *tds, char *buffer, const char *str, int len)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tds_quote_string </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00122.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="paramname"> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>len</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Quote a string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tds</em>&nbsp;</td><td>state information for the socket and the TDS protocol </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>buffer</em>&nbsp;</td><td>buffer to store quoted id. If NULL do not write anything (useful to compute quote length) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>str</em>&nbsp;</td><td>string to quote (not necessary null-terminated) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>length of string (-1 for null terminated) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>written chars (not including needed terminator) </dd></dl>

</div>
</div>
<a class="anchor" id="gaef0e9c7e5ba94fc3a8281bbddd291e50"></a><!-- doxytag: member="query.c::tds_send_cancel" ref="gaef0e9c7e5ba94fc3a8281bbddd291e50" args="(TDSSOCKET *tds)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tds_send_cancel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00122.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="paramname"> <em>tds</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="a00301.html#gaef0e9c7e5ba94fc3a8281bbddd291e50" title="tds_send_cancel() sends an empty packet (8 byte header only) tds_process_cancel should...">tds_send_cancel()</a> sends an empty packet (8 byte header only) tds_process_cancel should be called directly after this. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tds</em>&nbsp;</td><td>state information for the socket and the TDS protocol </td></tr>
  </table>
  </dd>
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>tcp will either deliver the packet or time out. (TIME_WAIT determines how long it waits between retries.)</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.</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. </p>

</div>
</div>
<a class="anchor" id="ga5dbe51ce9533218f2da23f69ff63dda4"></a><!-- doxytag: member="query.c::tds_skip_quoted" ref="ga5dbe51ce9533218f2da23f69ff63dda4" args="(const char *s)" -->
<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 *&nbsp;</td>
          <td class="paramname"> <em>s</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd]). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>s</em>&nbsp;</td><td>pointer to first quoting character (should be '," or [) </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>character after quoting </dd></dl>

</div>
</div>
<a class="anchor" id="gaecce368b287eeec2d797a377ae91aabd"></a><!-- doxytag: member="query.c::tds_submit_execdirect" ref="gaecce368b287eeec2d797a377ae91aabd" args="(TDSSOCKET *tds, const char *query, TDSPARAMINFO *params)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tds_submit_execdirect </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00122.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="paramname"> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>query</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00118.html">TDSPARAMINFO</a> *&nbsp;</td>
          <td class="paramname"> <em>params</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Submit a prepared query with parameters. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tds</em>&nbsp;</td><td>state information for the socket and the TDS protocol </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>query</em>&nbsp;</td><td>language query with given placeholders (?) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>params</em>&nbsp;</td><td>parameters to send </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>TDS_FAIL or TDS_SUCCEED </dd></dl>

</div>
</div>
<a class="anchor" id="ga1f3152b885df683498620e91142ec8f3"></a><!-- doxytag: member="query.c::tds_submit_execute" ref="ga1f3152b885df683498620e91142ec8f3" args="(TDSSOCKET *tds, TDSDYNAMIC *dyn)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tds_submit_execute </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00122.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="paramname"> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00101.html">TDSDYNAMIC</a> *&nbsp;</td>
          <td class="paramname"> <em>dyn</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="a00301.html#ga1f3152b885df683498620e91142ec8f3" title="tds_submit_execute() sends a previously prepared dynamic statement to the server...">tds_submit_execute()</a> sends a previously prepared dynamic statement to the server. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tds</em>&nbsp;</td><td>state information for the socket and the TDS protocol </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dyn</em>&nbsp;</td><td>dynamic proc to execute. Must build from same tds. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga2120b8c0c11dfae2a755244fa77ff5dc"></a><!-- doxytag: member="query.c::tds_submit_prepare" ref="ga2120b8c0c11dfae2a755244fa77ff5dc" args="(TDSSOCKET *tds, const char *query, const char *id, TDSDYNAMIC **dyn_out, TDSPARAMINFO *params)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tds_submit_prepare </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00122.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="paramname"> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>query</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>id</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00101.html">TDSDYNAMIC</a> **&nbsp;</td>
          <td class="paramname"> <em>dyn_out</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00118.html">TDSPARAMINFO</a> *&nbsp;</td>
          <td class="paramname"> <em>params</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="a00301.html#ga2120b8c0c11dfae2a755244fa77ff5dc" title="tds_submit_prepare() creates a temporary stored procedure in the server.">tds_submit_prepare()</a> creates a temporary stored procedure in the server. </p>
<p>Under TDS 4.2 dynamic statements are emulated building sql command </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tds</em>&nbsp;</td><td>state information for the socket and the TDS protocol </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>query</em>&nbsp;</td><td>language query with given placeholders (?) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>string to identify the dynamic query. Pass NULL for automatic generation. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dyn_out</em>&nbsp;</td><td>will receive allocated TDSDYNAMIC*. Any older allocated dynamic won't be freed, Can be NULL. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>params</em>&nbsp;</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="return"><dt><b>Returns:</b></dt><dd>TDS_FAIL or TDS_SUCCEED </dd></dl>

</div>
</div>
<a class="anchor" id="ga49926242495661c63cc42820a5f530c6"></a><!-- doxytag: member="query.c::tds_submit_query" ref="ga49926242495661c63cc42820a5f530c6" args="(TDSSOCKET *tds, const char *query)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tds_submit_query </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00122.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="paramname"> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>query</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="a00301.html#ga49926242495661c63cc42820a5f530c6" title="tds_submit_query() sends a language string to the database server for processing...">tds_submit_query()</a> 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><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tds</em>&nbsp;</td><td>state information for the socket and the TDS protocol </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>query</em>&nbsp;</td><td>language query to submit </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>TDS_FAIL or TDS_SUCCEED </dd></dl>

</div>
</div>
<a class="anchor" id="gaf5fc35439e704b403e865fa0ed755091"></a><!-- doxytag: member="query.c::tds_submit_query_params" ref="gaf5fc35439e704b403e865fa0ed755091" args="(TDSSOCKET *tds, const char *query, TDSPARAMINFO *params)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tds_submit_query_params </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00122.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="paramname"> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>query</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00118.html">TDSPARAMINFO</a> *&nbsp;</td>
          <td class="paramname"> <em>params</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="a00301.html#gaf5fc35439e704b403e865fa0ed755091" title="tds_submit_query_params() sends a language string to the database server for processing...">tds_submit_query_params()</a> 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><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tds</em>&nbsp;</td><td>state information for the socket and the TDS protocol </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>query</em>&nbsp;</td><td>language query to submit </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>params</em>&nbsp;</td><td>parameters of query </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>TDS_FAIL or TDS_SUCCEED </dd></dl>

</div>
</div>
<a class="anchor" id="gaa01973d616c941df3766098585d8cc35"></a><!-- doxytag: member="query.c::tds_submit_rpc" ref="gaa01973d616c941df3766098585d8cc35" args="(TDSSOCKET *tds, const char *rpc_name, TDSPARAMINFO *params)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tds_submit_rpc </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00122.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="paramname"> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>rpc_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00118.html">TDSPARAMINFO</a> *&nbsp;</td>
          <td class="paramname"> <em>params</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p><a class="el" href="a00301.html#gaa01973d616c941df3766098585d8cc35" title="tds_submit_rpc() call a RPC from server.">tds_submit_rpc()</a> call a RPC from server. </p>
<p>Output parameters will be stored in tds-&gt;param_info </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tds</em>&nbsp;</td><td>state information for the socket and the TDS protocol </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rpc_name</em>&nbsp;</td><td>name of RPC </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>params</em>&nbsp;</td><td>parameters informations. NULL for no parameters </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga549c6fdf63ca94aad9d8025290283d95"></a><!-- doxytag: member="query.c::tds_submit_unprepare" ref="ga549c6fdf63ca94aad9d8025290283d95" args="(TDSSOCKET *tds, TDSDYNAMIC *dyn)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int tds_submit_unprepare </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00122.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="paramname"> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00101.html">TDSDYNAMIC</a> *&nbsp;</td>
          <td class="paramname"> <em>dyn</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <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><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tds</em>&nbsp;</td><td>state information for the socket and the TDS protocol </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dyn</em>&nbsp;</td><td>dynamic query </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>TDS_SUCCEED or TDS_FAIL </dd></dl>

</div>
</div>
<hr/><h2>Variable Documentation</h2>
<a class="anchor" id="gac3f4c330e05c13a7d23a5c47d59d4237"></a><!-- doxytag: member="query.c::tds9_query_start" ref="gac3f4c330e05c13a7d23a5c47d59d4237" args="[]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const TDS_UCHAR tds9_query_start[]<code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
        
        0x16, 0, 0, 0,
        
        0x12, 0, 0, 0,
        
        0x02, 0,
        
        0, 0, 0, 0, 0, 0, 0, 0,
        
        1, 0, 0, 0
}
</pre></div>
</div>
</div>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>Defines</a></div>

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

<hr class="footer"/><address style="text-align: right;"><small>Generated on Wed Aug 17 22:22:32 2011 for FreeTDS API by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>