Sophie

Sophie

distrib > Mageia > 1 > i586 > media > core-release > by-pkgid > f0bc842dcf666302badcfd2545f3387c > files > 66

libfreetds0-doc-0.82-12.mga1.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>FreeTDS API: Query</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.4.1 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div>
<h1>Query<br>
<small>
[<a class="el" href="a00294.html">LibTDS API</a>]</small>
</h1>Function to handle query.  
<a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga56" doxytag="query::START_QUERY"></a>
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>START_QUERY</b>&nbsp;&nbsp;&nbsp;do { ; } while(0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga55" doxytag="query::tds_convert_string_free"></a>
#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" nowrap 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"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom">{ <b>MUL_STARTED</b> =  1
 }</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga5" doxytag="query::tds5_fix_dot_query"></a>
static char *&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds5_fix_dot_query</b> (const char *query, int *query_len, <a class="el" href="a00143.html">TDSPARAMINFO</a> *params)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga18">tds7_build_param_def_from_params</a> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, const char *query, size_t query_len, <a class="el" href="a00143.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="#ga18"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga17">tds7_build_param_def_from_query</a> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, const char *converted_query, int converted_query_len, <a class="el" href="a00143.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="#ga17"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga40" doxytag="query::tds7_put_cursor_fetch"></a>
static void&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds7_put_cursor_fetch</b> (<a class="el" href="a00144.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" nowrap align="right" valign="top"><a class="anchor" name="ga20" doxytag="query::tds7_put_params_definition"></a>
static void&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds7_put_params_definition</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, const char *param_definition, size_t param_length)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga19">tds7_put_query_params</a> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, const char *query, int 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="#ga19"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga26" doxytag="query::tds7_send_execute"></a>
static void&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds7_send_execute</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, <a class="el" href="a00141.html">TDSDYNAMIC</a> *dyn)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga1">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="#ga1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga2">tds_convert_string</a> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, const TDSICONV *char_conv, const char *s, int len, int *out_len)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert a string in an allocated buffer.  <a href="#ga2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga11" doxytag="query::tds_count_placeholders"></a>
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga11">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" nowrap align="right" valign="top"><a class="anchor" name="ga15" doxytag="query::tds_count_placeholders_ucs2le"></a>
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" nowrap align="right" valign="top"><a class="anchor" name="ga42" doxytag="query::tds_cursor_close"></a>
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_cursor_close</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, <a class="el" href="a00135.html">TDSCURSOR</a> *cursor)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga45" doxytag="query::tds_cursor_dealloc"></a>
int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga45">tds_cursor_dealloc</a> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, <a class="el" href="a00135.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" nowrap align="right" valign="top"><a class="anchor" name="ga37" doxytag="query::tds_cursor_declare"></a>
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_cursor_declare</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, <a class="el" href="a00135.html">TDSCURSOR</a> *cursor, <a class="el" href="a00143.html">TDSPARAMINFO</a> *params, int *something_to_send)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga41" doxytag="query::tds_cursor_fetch"></a>
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_cursor_fetch</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, <a class="el" href="a00135.html">TDSCURSOR</a> *cursor, TDS_CURSOR_FETCH fetch_type, TDS_INT i_row)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga38" doxytag="query::tds_cursor_open"></a>
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_cursor_open</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, <a class="el" href="a00135.html">TDSCURSOR</a> *cursor, <a class="el" href="a00143.html">TDSPARAMINFO</a> *params, int *something_to_send)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga43" doxytag="query::tds_cursor_setname"></a>
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_cursor_setname</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, <a class="el" href="a00135.html">TDSCURSOR</a> *cursor)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga39" doxytag="query::tds_cursor_setrows"></a>
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_cursor_setrows</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, <a class="el" href="a00135.html">TDSCURSOR</a> *cursor, int *something_to_send)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga44" doxytag="query::tds_cursor_update"></a>
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_cursor_update</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, <a class="el" href="a00135.html">TDSCURSOR</a> *cursor, TDS_CURSOR_OPERATION op, TDS_INT i_row, <a class="el" href="a00143.html">TDSPARAMINFO</a> *params)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga16">tds_get_column_declaration</a> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, <a class="el" href="a00140.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="#ga16"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga29">tds_get_dynid</a> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, char **id)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get an id for dynamic query based on TDS information.  <a href="#ga29"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga50" doxytag="query::tds_multiple_done"></a>
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_multiple_done</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, TDSMULTIPLE *multiple)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga52" doxytag="query::tds_multiple_execute"></a>
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_multiple_execute</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, TDSMULTIPLE *multiple, <a class="el" href="a00141.html">TDSDYNAMIC</a> *dyn)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga49" doxytag="query::tds_multiple_init"></a>
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_multiple_init</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, TDSMULTIPLE *multiple, TDS_MULTIPLE_TYPE type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga51" doxytag="query::tds_multiple_query"></a>
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_multiple_query</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, TDSMULTIPLE *multiple, const char *query, <a class="el" href="a00143.html">TDSPARAMINFO</a> *params)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga10">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="#ga10"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga14" doxytag="query::tds_next_placeholder_ucs2le"></a>
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" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga25">tds_put_data</a> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, <a class="el" href="a00140.html">TDSCOLUMN</a> *curcol)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write data to wire.  <a href="#ga25"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga23">tds_put_data_info</a> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, <a class="el" href="a00140.html">TDSCOLUMN</a> *curcol, int flags)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Put data information to wire.  <a href="#ga23"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga24">tds_put_data_info_length</a> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, <a class="el" href="a00140.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="#ga24"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga47" doxytag="query::tds_put_param_as_string"></a>
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_put_param_as_string</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, <a class="el" href="a00143.html">TDSPARAMINFO</a> *params, int n)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga28" doxytag="query::tds_put_params"></a>
static void&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_put_params</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, <a class="el" href="a00143.html">TDSPARAMINFO</a> *info, int flags)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga3" doxytag="query::tds_query_flush_packet"></a>
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_query_flush_packet</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga33" doxytag="query::tds_quote"></a>
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_quote</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, char *buffer, char quoting, const char *id, int len)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga46" doxytag="query::tds_quote_and_put"></a>
static void&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_quote_and_put</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, const char *s, const char *end)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga34">tds_quote_id</a> (<a class="el" href="a00144.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="#ga34"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga35">tds_quote_string</a> (<a class="el" href="a00144.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="#ga35"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga32">tds_send_cancel</a> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="a00290.html#ga32">tds_send_cancel()</a> sends an empty packet (8 byte header only) tds_process_cancel should be called directly after this.  <a href="#ga32"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga48" doxytag="query::tds_send_emulated_execute"></a>
static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga48">tds_send_emulated_execute</a> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, const char *query, <a class="el" href="a00143.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" nowrap align="right" valign="top"><a class="anchor" name="ga36" doxytag="query::tds_set_cur_cursor"></a>
static void&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_set_cur_cursor</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, <a class="el" href="a00135.html">TDSCURSOR</a> *cursor)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga8" doxytag="query::tds_skip_comment"></a>
static const char *&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_skip_comment</b> (const char *s)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga12" doxytag="query::tds_skip_comment_ucs2le"></a>
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" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga9">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="#ga9"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga13" doxytag="query::tds_skip_quoted_ucs2le"></a>
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" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga22">tds_submit_execdirect</a> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, const char *query, <a class="el" href="a00143.html">TDSPARAMINFO</a> *params)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Submit a prepared query with parameters.  <a href="#ga22"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga27">tds_submit_execute</a> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, <a class="el" href="a00141.html">TDSDYNAMIC</a> *dyn)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="a00290.html#ga27">tds_submit_execute()</a> sends a previously prepared dynamic statement to the server.  <a href="#ga27"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga53" doxytag="query::tds_submit_optioncmd"></a>
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_submit_optioncmd</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, <a class="el" href="a00163.html#a716">TDS_OPTION_CMD</a> command, TDS_OPTION option, TDS_OPTION_ARG *param, TDS_INT param_size)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga21">tds_submit_prepare</a> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, const char *query, const char *id, <a class="el" href="a00141.html">TDSDYNAMIC</a> **dyn_out, <a class="el" href="a00143.html">TDSPARAMINFO</a> *params)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="a00290.html#ga21">tds_submit_prepare()</a> creates a temporary stored procedure in the server.  <a href="#ga21"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga4">tds_submit_query</a> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, const char *query)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="a00290.html#ga4">tds_submit_query()</a> sends a language string to the database server for processing.  <a href="#ga4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga6">tds_submit_query_params</a> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, const char *query, <a class="el" href="a00143.html">TDSPARAMINFO</a> *params)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="a00290.html#ga6">tds_submit_query_params()</a> sends a language string to the database server for processing.  <a href="#ga6"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga7" doxytag="query::tds_submit_queryf"></a>
int&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_submit_queryf</b> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, const char *queryf,...)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga31">tds_submit_rpc</a> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, const char *rpc_name, <a class="el" href="a00143.html">TDSPARAMINFO</a> *params)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><a class="el" href="a00290.html#ga31">tds_submit_rpc()</a> call a RPC from server.  <a href="#ga31"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00290.html#ga30">tds_submit_unprepare</a> (<a class="el" href="a00144.html">TDSSOCKET</a> *tds, <a class="el" href="a00141.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="#ga30"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga0" doxytag="query::inc_num"></a>
static volatile int&nbsp;</td><td class="memItemRight" valign="bottom"><b>inc_num</b> = 1</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Function to handle query. 
<p>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="ga54" doxytag="query.c::TDS_PUT_N_AS_UCS2"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">#define TDS_PUT_N_AS_UCS2          </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">tds,         <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>s&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<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="a00290.html#ga1">tds_ascii_to_ucs2</a>(buffer, s)); \
} <span class="keywordflow">while</span>(0)
</pre></div>    </td>
  </tr>
</table>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="ga18" doxytag="query.c::tds7_build_param_def_from_params"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static char * tds7_build_param_def_from_params           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="a00144.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>query</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname" nowrap> <em>query_len</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap><a class="el" href="a00143.html">TDSPARAMINFO</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>params</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>size_t *&nbsp;</td>
          <td class="mdname" nowrap> <em>out_len</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Return string with parameters definition, useful for TDS7+. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>allocated and filled string or NULL on failure (coded in ucs2le charset ) </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga17" doxytag="query.c::tds7_build_param_def_from_query"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static char * tds7_build_param_def_from_query           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="a00144.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>converted_query</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>converted_query_len</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap><a class="el" href="a00143.html">TDSPARAMINFO</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>params</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>size_t *&nbsp;</td>
          <td class="mdname" nowrap> <em>out_len</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Return string with parameters definition, useful for TDS7+. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>allocated and filled string or NULL on failure (coded in ucs2le charset ) </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga19" doxytag="query.c::tds7_put_query_params"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static void tds7_put_query_params           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="a00144.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>query</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>query_len</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Output params types and query (required by sp_prepare/sp_executesql/sp_prepexec). 
<p>
<dl compact><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>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga1" doxytag="query.c::tds_ascii_to_ucs2"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static int tds_ascii_to_ucs2           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">char *&nbsp;</td>
          <td class="mdname" nowrap> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>buf</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Accept an ASCII string, convert it to UCS2-LE The input is null-terminated, but the output excludes the null. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>bytes written </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga2" doxytag="query.c::tds_convert_string"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static const char* tds_convert_string           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="a00144.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const TDSICONV *&nbsp;</td>
          <td class="mdname" nowrap> <em>char_conv</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>s</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>len</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int *&nbsp;</td>
          <td class="mdname" nowrap> <em>out_len</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Convert a string in an allocated buffer. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>string allocated (or input pointer if no conversion required) or NULL if error </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga16" doxytag="query.c::tds_get_column_declaration"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static int tds_get_column_declaration           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="a00144.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap><a class="el" href="a00140.html">TDSCOLUMN</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>curcol</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>char *&nbsp;</td>
          <td class="mdname" nowrap> <em>out</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Return declaration for column (like "varchar(20)"). 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>TDS_FAIL or TDS_SUCCEED </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga29" doxytag="query.c::tds_get_dynid"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int tds_get_dynid           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="a00144.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>char **&nbsp;</td>
          <td class="mdname" nowrap> <em>id</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get an id for dynamic query based on TDS information. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>TDS_FAIL or TDS_SUCCEED </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga10" doxytag="query.c::tds_next_placeholder"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">const char* tds_next_placeholder           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>start</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get position of next placeholder. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>next placeholder or NULL if not found </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga25" doxytag="query.c::tds_put_data"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static int tds_put_data           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="a00144.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap><a class="el" href="a00140.html">TDSCOLUMN</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>curcol</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Write data to wire. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>TDS_FAIL on error or TDS_SUCCEED </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga23" doxytag="query.c::tds_put_data_info"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static int tds_put_data_info           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="a00144.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap><a class="el" href="a00140.html">TDSCOLUMN</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>curcol</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>flags</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Put data information to wire. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>TDS_SUCCEED or TDS_FAIL </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga24" doxytag="query.c::tds_put_data_info_length"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">static int tds_put_data_info_length           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="a00144.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap><a class="el" href="a00140.html">TDSCOLUMN</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>curcol</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>flags</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Calc information length in bytes (useful for calculating full packet length). 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>TDS_SUCCEED or TDS_FAIL </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga34" doxytag="query.c::tds_quote_id"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int tds_quote_id           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="a00144.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>char *&nbsp;</td>
          <td class="mdname" nowrap> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>id</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>idlen</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Quote an id. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>written chars (not including needed terminator) </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga35" doxytag="query.c::tds_quote_string"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int tds_quote_string           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="a00144.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>char *&nbsp;</td>
          <td class="mdname" nowrap> <em>buffer</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>str</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>len</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Quote a string. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>written chars (not including needed terminator) </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga32" doxytag="query.c::tds_send_cancel"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int tds_send_cancel           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="a00144.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>tds</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<a class="el" href="a00290.html#ga32">tds_send_cancel()</a> sends an empty packet (8 byte header only) tds_process_cancel should be called directly after this. 
<p>
<dl compact><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>
</dl>
<dl compact><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>
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>
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.     </td>
  </tr>
</table>
<a class="anchor" name="ga9" doxytag="query.c::tds_skip_quoted"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">const char* tds_skip_quoted           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>s</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Skip quoting string (like 'sfsf', "dflkdj" or [dfkjd]). 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>character after quoting </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga22" doxytag="query.c::tds_submit_execdirect"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int tds_submit_execdirect           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="a00144.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>query</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap><a class="el" href="a00143.html">TDSPARAMINFO</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>params</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Submit a prepared query with parameters. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>TDS_FAIL or TDS_SUCCEED </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga27" doxytag="query.c::tds_submit_execute"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int tds_submit_execute           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="a00144.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap><a class="el" href="a00141.html">TDSDYNAMIC</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>dyn</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<a class="el" href="a00290.html#ga27">tds_submit_execute()</a> sends a previously prepared dynamic statement to the server. 
<p>
<dl compact><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>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga21" doxytag="query.c::tds_submit_prepare"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int tds_submit_prepare           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="a00144.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>query</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>id</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap><a class="el" href="a00141.html">TDSDYNAMIC</a> **&nbsp;</td>
          <td class="mdname" nowrap> <em>dyn_out</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap><a class="el" href="a00143.html">TDSPARAMINFO</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>params</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<a class="el" href="a00290.html#ga21">tds_submit_prepare()</a> creates a temporary stored procedure in the server. 
<p>
Under TDS 4.2 dynamic statements are emulated building sql command <dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>TDS_FAIL or TDS_SUCCEED </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga4" doxytag="query.c::tds_submit_query"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int tds_submit_query           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="a00144.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>query</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<a class="el" href="a00290.html#ga4">tds_submit_query()</a> sends a language string to the database server for processing. 
<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. <dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>TDS_FAIL or TDS_SUCCEED </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga6" doxytag="query.c::tds_submit_query_params"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int tds_submit_query_params           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="a00144.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>query</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap><a class="el" href="a00143.html">TDSPARAMINFO</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>params</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<a class="el" href="a00290.html#ga6">tds_submit_query_params()</a> sends a language string to the database server for processing. 
<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. <dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>TDS_FAIL or TDS_SUCCEED </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga31" doxytag="query.c::tds_submit_rpc"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int tds_submit_rpc           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="a00144.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>rpc_name</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap><a class="el" href="a00143.html">TDSPARAMINFO</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>params</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<a class="el" href="a00290.html#ga31">tds_submit_rpc()</a> call a RPC from server. 
<p>
Output parameters will be stored in tds-&gt;param_info <dl compact><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>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga30" doxytag="query.c::tds_submit_unprepare"></a><p>
<table class="mdTable" cellpadding="2" cellspacing="0">
  <tr>
    <td class="mdRow">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top">int tds_submit_unprepare           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="a00144.html">TDSSOCKET</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>tds</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap><a class="el" href="a00141.html">TDSDYNAMIC</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>dyn</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Send a unprepare request for a prepared query. 
<p>
<dl compact><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>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>TDS_SUCCEED or TDS_FAIL </dd></dl>
    </td>
  </tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Wed May 7 19:22:11 2008 for FreeTDS API by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
</body>
</html>