JezK
Edit File: a00536.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=11"/> <meta name="generator" content="Doxygen 1.9.4"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>FreeTDS API: ODBC utility</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="search/searchdata.js"></script> <script type="text/javascript" src="search/search.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr id="projectrow"> <td id="projectalign"> <div id="projectname">FreeTDS API </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.9.4 --> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ var searchBox = new SearchBox("searchBox", "search",'Search','.html'); /* @license-end */ </script> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */ $(function() { initMenu('',true,false,'search.php','Search'); $(document).ready(function() { init_search(); }); }); /* @license-end */ </script> <div id="main-nav"></div> </div><!-- top --> <!-- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> </div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <div class="header"> <div class="summary"> <a href="#define-members">Macros</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"><div class="title">ODBC utility<div class="ingroups"><a class="el" href="a00535.html">ODBC API</a></div></div></div> </div><!--header--> <div class="contents"> <p>Functions called within <code>ODBC</code> driver. <a href="#details">More...</a></p> <div class="dynheader"> Collaboration diagram for ODBC utility:</div> <div class="dyncontent"> <div class="center"><!-- SVG 0 --> </div> </div> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a> Macros</h2></td></tr> <tr class="memitem:ga9ebc5d499cace793f1e05df6c7c9ba44"><td class="memItemLeft" align="right" valign="top"><a id="ga9ebc5d499cace793f1e05df6c7c9ba44" name="ga9ebc5d499cace793f1e05df6c7c9ba44"></a> #define </td><td class="memItemRight" valign="bottom"><b>C_TYPES</b></td></tr> <tr class="separator:ga9ebc5d499cace793f1e05df6c7c9ba44"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga7293d54269b60ba94d1d4a6e7b262492"><td class="memItemLeft" align="right" valign="top"><a id="ga7293d54269b60ba94d1d4a6e7b262492" name="ga7293d54269b60ba94d1d4a6e7b262492"></a> #define </td><td class="memItemRight" valign="bottom"><b>SQL_TYPES</b></td></tr> <tr class="separator:ga7293d54269b60ba94d1d4a6e7b262492"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae4ebaead62811e56dd56c48af869c714"><td class="memItemLeft" align="right" valign="top"><a id="gae4ebaead62811e56dd56c48af869c714" name="gae4ebaead62811e56dd56c48af869c714"></a> #define </td><td class="memItemRight" valign="bottom"><b>TYPE_NORMAL_SQL_C_GUID</b></td></tr> <tr class="separator:gae4ebaead62811e56dd56c48af869c714"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga9d49c06d0280d4fdc00e3617b5dffffd"><td class="memItemLeft" align="right" valign="top"><a id="ga9d49c06d0280d4fdc00e3617b5dffffd" name="ga9d49c06d0280d4fdc00e3617b5dffffd"></a> #define </td><td class="memItemRight" valign="bottom"><b>TYPE_NORMAL_SQL_GUID</b></td></tr> <tr class="separator:ga9d49c06d0280d4fdc00e3617b5dffffd"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:ga3f0a413cea480a38d3d9b90c95515f6b"><td class="memItemLeft" align="right" valign="top">TDS_SERVER_TYPE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00536.html#ga3f0a413cea480a38d3d9b90c95515f6b">odbc_c_to_server_type</a> (int c_type)</td></tr> <tr class="memdesc:ga3f0a413cea480a38d3d9b90c95515f6b"><td class="mdescLeft"> </td><td class="mdescRight">Pass this an SQL_C_* type and get a SYB* type which most closely corresponds to the SQL_C_* type. <a href="a00536.html#ga3f0a413cea480a38d3d9b90c95515f6b">More...</a><br /></td></tr> <tr class="separator:ga3f0a413cea480a38d3d9b90c95515f6b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa11c942c0504adeede625f31c495ef77"><td class="memItemLeft" align="right" valign="top"><a id="gaa11c942c0504adeede625f31c495ef77" name="gaa11c942c0504adeede625f31c495ef77"></a> void </td><td class="memItemRight" valign="bottom"><b>odbc_convert_err_set</b> (struct <a class="el" href="a00966.html">_sql_errors</a> *errs, TDS_INT err)</td></tr> <tr class="separator:gaa11c942c0504adeede625f31c495ef77"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga8505d5df828c2f5bc1fc03064ee5c7da"><td class="memItemLeft" align="right" valign="top"><a id="ga8505d5df828c2f5bc1fc03064ee5c7da" name="ga8505d5df828c2f5bc1fc03064ee5c7da"></a> <a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> * </td><td class="memItemRight" valign="bottom"><b>odbc_dstr_copy</b> (<a class="el" href="a00998.html">TDS_DBC</a> *dbc, <a class="el" href="a00545.html#gafddddf5bd7ad223cadee3d3bdc899954">DSTR</a> *s, int size, const ODBC_CHAR *str)</td></tr> <tr class="separator:ga8505d5df828c2f5bc1fc03064ee5c7da"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafd5cb20e55dcb29b31e62fa6857061e8"><td class="memItemLeft" align="right" valign="top"><a id="gafd5cb20e55dcb29b31e62fa6857061e8" name="gafd5cb20e55dcb29b31e62fa6857061e8"></a> SQLSMALLINT </td><td class="memItemRight" valign="bottom"><b>odbc_get_concise_c_type</b> (SQLSMALLINT type, SQLSMALLINT interval)</td></tr> <tr class="separator:gafd5cb20e55dcb29b31e62fa6857061e8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga61bc1eed77426257cba30539c0bbd192"><td class="memItemLeft" align="right" valign="top"><a id="ga61bc1eed77426257cba30539c0bbd192" name="ga61bc1eed77426257cba30539c0bbd192"></a> SQLSMALLINT </td><td class="memItemRight" valign="bottom"><b>odbc_get_concise_sql_type</b> (SQLSMALLINT type, SQLSMALLINT interval)</td></tr> <tr class="separator:ga61bc1eed77426257cba30539c0bbd192"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab8d14abc5db4efed19212789f1709ecb"><td class="memItemLeft" align="right" valign="top"><a id="gab8d14abc5db4efed19212789f1709ecb" name="gab8d14abc5db4efed19212789f1709ecb"></a> SQLLEN </td><td class="memItemRight" valign="bottom"><b>odbc_get_octet_len</b> (int c_type, const struct <a class="el" href="a00974.html">_drecord</a> *drec)</td></tr> <tr class="separator:gab8d14abc5db4efed19212789f1709ecb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga35028e8de1d50dc51ccef1d645c55e2a"><td class="memItemLeft" align="right" valign="top"><a id="ga35028e8de1d50dc51ccef1d645c55e2a" name="ga35028e8de1d50dc51ccef1d645c55e2a"></a> SQLINTEGER </td><td class="memItemRight" valign="bottom"><b>odbc_get_param_len</b> (const struct <a class="el" href="a00974.html">_drecord</a> *drec_axd, const struct <a class="el" href="a00974.html">_drecord</a> *drec_ixd, const <a class="el" href="a00978.html">TDS_DESC</a> *axd, unsigned int n_row)</td></tr> <tr class="memdesc:ga35028e8de1d50dc51ccef1d645c55e2a"><td class="mdescLeft"> </td><td class="mdescRight">Return length of parameter from parameter information. <br /></td></tr> <tr class="separator:ga35028e8de1d50dc51ccef1d645c55e2a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafeb46e84157c5a8114160553d3424145"><td class="memItemLeft" align="right" valign="top"><a id="gafeb46e84157c5a8114160553d3424145" name="gafeb46e84157c5a8114160553d3424145"></a> unsigned int </td><td class="memItemRight" valign="bottom"><b>odbc_get_string_size</b> (int size, const ODBC_CHAR *str _WIDE)</td></tr> <tr class="separator:gafeb46e84157c5a8114160553d3424145"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae85ff7fb2002b5a7abc04fbee79e5525"><td class="memItemLeft" align="right" valign="top"><a id="gae85ff7fb2002b5a7abc04fbee79e5525" name="gae85ff7fb2002b5a7abc04fbee79e5525"></a> void </td><td class="memItemRight" valign="bottom"><b>odbc_rdbms_version</b> (<a class="el" href="a01210.html">TDSSOCKET</a> *tds, char *pversion_string)</td></tr> <tr class="memdesc:gae85ff7fb2002b5a7abc04fbee79e5525"><td class="mdescLeft"> </td><td class="mdescRight">Returns the version of the RDBMS in the ODBC format. <br /></td></tr> <tr class="separator:gae85ff7fb2002b5a7abc04fbee79e5525"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga128f6b09cde0af252370ba89cfa1fb78"><td class="memItemLeft" align="right" valign="top">SQLRETURN </td><td class="memItemRight" valign="bottom"><a class="el" href="a00536.html#ga128f6b09cde0af252370ba89cfa1fb78">odbc_set_concise_c_type</a> (SQLSMALLINT concise_type, struct <a class="el" href="a00974.html">_drecord</a> *drec, int check_only)</td></tr> <tr class="memdesc:ga128f6b09cde0af252370ba89cfa1fb78"><td class="mdescLeft"> </td><td class="mdescRight">Set concise type and all cascading field. <a href="a00536.html#ga128f6b09cde0af252370ba89cfa1fb78">More...</a><br /></td></tr> <tr class="separator:ga128f6b09cde0af252370ba89cfa1fb78"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga125574bd2de677438909612db80041ea"><td class="memItemLeft" align="right" valign="top">SQLRETURN </td><td class="memItemRight" valign="bottom"><a class="el" href="a00536.html#ga125574bd2de677438909612db80041ea">odbc_set_concise_sql_type</a> (SQLSMALLINT concise_type, struct <a class="el" href="a00974.html">_drecord</a> *drec, int check_only)</td></tr> <tr class="memdesc:ga125574bd2de677438909612db80041ea"><td class="mdescLeft"> </td><td class="mdescRight">Set concise type and all cascading field. <a href="a00536.html#ga125574bd2de677438909612db80041ea">More...</a><br /></td></tr> <tr class="separator:ga125574bd2de677438909612db80041ea"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga4d7f3ccb3041f6d9d64e025052cc1e3b"><td class="memItemLeft" align="right" valign="top"><a id="ga4d7f3ccb3041f6d9d64e025052cc1e3b" name="ga4d7f3ccb3041f6d9d64e025052cc1e3b"></a> void </td><td class="memItemRight" valign="bottom"><b>odbc_set_return_params</b> (struct <a class="el" href="a01006.html">_hstmt</a> *stmt, unsigned int n_row)</td></tr> <tr class="separator:ga4d7f3ccb3041f6d9d64e025052cc1e3b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga9c0dddb7b680a1c71c12ae953089daa4"><td class="memItemLeft" align="right" valign="top"><a id="ga9c0dddb7b680a1c71c12ae953089daa4" name="ga9c0dddb7b680a1c71c12ae953089daa4"></a> void </td><td class="memItemRight" valign="bottom"><b>odbc_set_return_status</b> (struct <a class="el" href="a01006.html">_hstmt</a> *stmt, unsigned int n_row)</td></tr> <tr class="separator:ga9c0dddb7b680a1c71c12ae953089daa4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga01f6f50b50046d34e86f2f513f994398"><td class="memItemLeft" align="right" valign="top"><a id="ga01f6f50b50046d34e86f2f513f994398" name="ga01f6f50b50046d34e86f2f513f994398"></a> int </td><td class="memItemRight" valign="bottom"><b>odbc_set_stmt_query</b> (<a class="el" href="a01006.html">TDS_STMT</a> *stmt, const ODBC_CHAR *sql, int sql_len _WIDE)</td></tr> <tr class="separator:ga01f6f50b50046d34e86f2f513f994398"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gadba4490bf3183799a70c9e2f44fab331"><td class="memItemLeft" align="right" valign="top">SQLRETURN </td><td class="memItemRight" valign="bottom"><a class="el" href="a00536.html#gadba4490bf3183799a70c9e2f44fab331">odbc_set_string_flag</a> (<a class="el" href="a00998.html">TDS_DBC</a> *dbc, SQLPOINTER buffer, SQLINTEGER cbBuffer, void FAR *pcbBuffer, const char *s, int len, int flag)</td></tr> <tr class="memdesc:gadba4490bf3183799a70c9e2f44fab331"><td class="mdescLeft"> </td><td class="mdescRight">Copy a string to client setting size according to ODBC convenction. <a href="a00536.html#gadba4490bf3183799a70c9e2f44fab331">More...</a><br /></td></tr> <tr class="separator:gadba4490bf3183799a70c9e2f44fab331"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga5e4c9acb731dbc830094782d4084d08d"><td class="memItemLeft" align="right" valign="top"><a id="ga5e4c9acb731dbc830094782d4084d08d" name="ga5e4c9acb731dbc830094782d4084d08d"></a> int </td><td class="memItemRight" valign="bottom"><b>odbc_sql_to_c_type_default</b> (int sql_type)</td></tr> <tr class="separator:ga5e4c9acb731dbc830094782d4084d08d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa9df9c748bade8b28c2c73db52d90081"><td class="memItemLeft" align="right" valign="top"><a id="gaa9df9c748bade8b28c2c73db52d90081" name="gaa9df9c748bade8b28c2c73db52d90081"></a> TDS_SERVER_TYPE </td><td class="memItemRight" valign="bottom"><b>odbc_sql_to_server_type</b> (<a class="el" href="a01206.html">TDSCONNECTION</a> *conn, int sql_type, int sql_unsigned)</td></tr> <tr class="separator:gaa9df9c748bade8b28c2c73db52d90081"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <p >Functions called within <code>ODBC</code> driver. </p> <h2 class="groupheader">Function Documentation</h2> <a id="ga3f0a413cea480a38d3d9b90c95515f6b" name="ga3f0a413cea480a38d3d9b90c95515f6b"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga3f0a413cea480a38d3d9b90c95515f6b">◆ </a></span>odbc_c_to_server_type()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">TDS_SERVER_TYPE odbc_c_to_server_type </td> <td>(</td> <td class="paramtype">int </td> <td class="paramname"><em>c_type</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Pass this an SQL_C_* type and get a SYB* type which most closely corresponds to the SQL_C_* type. </p> <p >This function can return XSYBNVARCHAR or SYBUINTx even if server do not support it </p> </div> </div> <a id="ga128f6b09cde0af252370ba89cfa1fb78" name="ga128f6b09cde0af252370ba89cfa1fb78"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga128f6b09cde0af252370ba89cfa1fb78">◆ </a></span>odbc_set_concise_c_type()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SQLRETURN odbc_set_concise_c_type </td> <td>(</td> <td class="paramtype">SQLSMALLINT </td> <td class="paramname"><em>concise_type</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="a00974.html">_drecord</a> * </td> <td class="paramname"><em>drec</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>check_only</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Set concise type and all cascading field. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">concise_type</td><td>concise type to set </td></tr> <tr><td class="paramname">drec</td><td>record to set. NULL to test error without setting </td></tr> <tr><td class="paramname">check_only</td><td>it <>0 (true) check only, do not set type </td></tr> </table> </dd> </dl> </div> </div> <a id="ga125574bd2de677438909612db80041ea" name="ga125574bd2de677438909612db80041ea"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga125574bd2de677438909612db80041ea">◆ </a></span>odbc_set_concise_sql_type()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SQLRETURN odbc_set_concise_sql_type </td> <td>(</td> <td class="paramtype">SQLSMALLINT </td> <td class="paramname"><em>concise_type</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">struct <a class="el" href="a00974.html">_drecord</a> * </td> <td class="paramname"><em>drec</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>check_only</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Set concise type and all cascading field. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">concise_type</td><td>concise type to set </td></tr> <tr><td class="paramname">drec</td><td>record to set. NULL to test error without setting </td></tr> <tr><td class="paramname">check_only</td><td>it <>0 (true) check only, do not set type </td></tr> </table> </dd> </dl> </div> </div> <a id="gadba4490bf3183799a70c9e2f44fab331" name="gadba4490bf3183799a70c9e2f44fab331"></a> <h2 class="memtitle"><span class="permalink"><a href="#gadba4490bf3183799a70c9e2f44fab331">◆ </a></span>odbc_set_string_flag()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">SQLRETURN odbc_set_string_flag </td> <td>(</td> <td class="paramtype"><a class="el" href="a00998.html">TDS_DBC</a> * </td> <td class="paramname"><em>dbc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">SQLPOINTER </td> <td class="paramname"><em>buffer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">SQLINTEGER </td> <td class="paramname"><em>cbBuffer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void FAR * </td> <td class="paramname"><em>pcbBuffer</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>s</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>len</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>flag</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Copy a string to client setting size according to ODBC convenction. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">dbc</td><td>database connection. Can be NULL </td></tr> <tr><td class="paramname">buffer</td><td>client buffer </td></tr> <tr><td class="paramname">cbBuffer</td><td>client buffer size (in bytes) </td></tr> <tr><td class="paramname">pcbBuffer</td><td>pointer to SQLSMALLINT to hold string size </td></tr> <tr><td class="paramname">s</td><td>string to copy </td></tr> <tr><td class="paramname">len</td><td>len of string to copy. <0 null terminated </td></tr> <tr><td class="paramname">flag</td><td>set of flags. 0x01 wide string in buffer 0x10 pcbBuffer is SQLINTEGER otherwise SQLSMALLINT 0x20 size is in bytes, not characters </td></tr> </table> </dd> </dl> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.4 </small></address> </body> </html>