JezK
Edit File: a00541.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: Memory allocation</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> | <a href="#var-members">Variables</a> </div> <div class="headertitle"><div class="title">Memory allocation<div class="ingroups"><a class="el" href="a00546.html">LibTDS API</a></div></div></div> </div><!--header--> <div class="contents"> <p>Allocate or free resources. <a href="#details">More...</a></p> <div class="dynheader"> Collaboration diagram for Memory allocation:</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:ga2ca7aa4844760d3986adebccd0f6d7fb"><td class="memItemLeft" align="right" valign="top"><a id="ga2ca7aa4844760d3986adebccd0f6d7fb" name="ga2ca7aa4844760d3986adebccd0f6d7fb"></a> #define </td><td class="memItemRight" valign="bottom"><b>REQ</b>(i, n)   |(((TDS_REQ_ ## n / 8) == i)?(1<<(TDS_REQ_ ## n & 7)):0)</td></tr> <tr class="separator:ga2ca7aa4844760d3986adebccd0f6d7fb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gad35ab722eefa1d0b2090744cc8ee2590"><td class="memItemLeft" align="right" valign="top"><a id="gad35ab722eefa1d0b2090744cc8ee2590" name="gad35ab722eefa1d0b2090744cc8ee2590"></a> #define </td><td class="memItemRight" valign="bottom"><b>REQB</b>(i)   0 SUPPORTED_REQ_CAP(i)</td></tr> <tr class="separator:gad35ab722eefa1d0b2090744cc8ee2590"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga96251b891962b8eebb5e7a66a7ddbeb3"><td class="memItemLeft" align="right" valign="top"><a id="ga96251b891962b8eebb5e7a66a7ddbeb3" name="ga96251b891962b8eebb5e7a66a7ddbeb3"></a> #define </td><td class="memItemRight" valign="bottom"><b>RES</b>(i, n)   |(((TDS_RES_ ## n / 8) == i)?(1<<(TDS_RES_ ## n & 7)):0)</td></tr> <tr class="separator:ga96251b891962b8eebb5e7a66a7ddbeb3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga5b4ab77f34ec83ec87a6622074594244"><td class="memItemLeft" align="right" valign="top"><a id="ga5b4ab77f34ec83ec87a6622074594244" name="ga5b4ab77f34ec83ec87a6622074594244"></a> #define </td><td class="memItemRight" valign="bottom"><b>RESB</b>(i)   0 SUPPORTED_RES_CAP(i)</td></tr> <tr class="separator:ga5b4ab77f34ec83ec87a6622074594244"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga634dbadee4f429a23163185637b194ee"><td class="memItemLeft" align="right" valign="top"><a id="ga634dbadee4f429a23163185637b194ee" name="ga634dbadee4f429a23163185637b194ee"></a> #define </td><td class="memItemRight" valign="bottom"><b>SQLS_ENTRY</b>(number, state)   case number: p = state; break</td></tr> <tr class="separator:ga634dbadee4f429a23163185637b194ee"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga385ad1a1b9dba2d64c2dcde7a6407d54"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00541.html#ga385ad1a1b9dba2d64c2dcde7a6407d54">SUPPORTED_REQ_CAP</a>(i)</td></tr> <tr class="separator:ga385ad1a1b9dba2d64c2dcde7a6407d54"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga0254632b8c748a72af386e7a155bc7b2"><td class="memItemLeft" align="right" valign="top"><a id="ga0254632b8c748a72af386e7a155bc7b2" name="ga0254632b8c748a72af386e7a155bc7b2"></a> #define </td><td class="memItemRight" valign="bottom"><b>SUPPORTED_RES_CAP</b>(i)    RES(i,CON_NOOOB) RES(i,PROTO_NOTEXT) RES(i,PROTO_NOBULK) RES(i,NOTDSDEBUG)</td></tr> <tr class="separator:ga0254632b8c748a72af386e7a155bc7b2"><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:ga01933a949833cac5bd287e9bdc601942"><td class="memItemLeft" align="right" valign="top"><a id="ga01933a949833cac5bd287e9bdc601942" name="ga01933a949833cac5bd287e9bdc601942"></a> <a class="el" href="a01142.html">BCPCOLDATA</a> * </td><td class="memItemRight" valign="bottom"><b>tds_alloc_bcp_column_data</b> (unsigned int column_size)</td></tr> <tr class="separator:ga01933a949833cac5bd287e9bdc601942"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gad0691bd00b3969bd284825795b4ca537"><td class="memItemLeft" align="right" valign="top"><a id="gad0691bd00b3969bd284825795b4ca537" name="gad0691bd00b3969bd284825795b4ca537"></a> <a class="el" href="a01222.html">TDSBCPINFO</a> * </td><td class="memItemRight" valign="bottom"><b>tds_alloc_bcpinfo</b> (void)</td></tr> <tr class="separator:gad0691bd00b3969bd284825795b4ca537"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga78565676d7d1766c6eda9624a331f405"><td class="memItemLeft" align="right" valign="top"><a id="ga78565676d7d1766c6eda9624a331f405" name="ga78565676d7d1766c6eda9624a331f405"></a> char * </td><td class="memItemRight" valign="bottom"><b>tds_alloc_client_sqlstate</b> (int msgno)</td></tr> <tr class="separator:ga78565676d7d1766c6eda9624a331f405"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga19616978fdf1dd4680bee5f63d1355f8"><td class="memItemLeft" align="right" valign="top"><a id="ga19616978fdf1dd4680bee5f63d1355f8" name="ga19616978fdf1dd4680bee5f63d1355f8"></a> static <a class="el" href="a01150.html">TDSCOLUMN</a> * </td><td class="memItemRight" valign="bottom"><b>tds_alloc_column</b> (void)</td></tr> <tr class="separator:ga19616978fdf1dd4680bee5f63d1355f8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga93dcf17e404712a2c450a1b26cd5a0b7"><td class="memItemLeft" align="right" valign="top"><a id="ga93dcf17e404712a2c450a1b26cd5a0b7" name="ga93dcf17e404712a2c450a1b26cd5a0b7"></a> static <a class="el" href="a01158.html">TDSCOMPUTEINFO</a> * </td><td class="memItemRight" valign="bottom"><b>tds_alloc_compute_result</b> (TDS_USMALLINT num_cols, TDS_USMALLINT by_cols)</td></tr> <tr class="memdesc:ga93dcf17e404712a2c450a1b26cd5a0b7"><td class="mdescLeft"> </td><td class="mdescRight">Allocate memory for storing compute info return NULL on out of memory. <br /></td></tr> <tr class="separator:ga93dcf17e404712a2c450a1b26cd5a0b7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga8b18e5aa2f9f4cbafad31c2ccbf71327"><td class="memItemLeft" align="right" valign="top"><a id="ga8b18e5aa2f9f4cbafad31c2ccbf71327" name="ga8b18e5aa2f9f4cbafad31c2ccbf71327"></a> <a class="el" href="a01158.html">TDSCOMPUTEINFO</a> ** </td><td class="memItemRight" valign="bottom"><b>tds_alloc_compute_results</b> (<a class="el" href="a01210.html">TDSSOCKET</a> *tds, TDS_USMALLINT num_cols, TDS_USMALLINT by_cols)</td></tr> <tr class="separator:ga8b18e5aa2f9f4cbafad31c2ccbf71327"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga05551834cc559869a180a18dd5d2d655"><td class="memItemLeft" align="right" valign="top"><a id="ga05551834cc559869a180a18dd5d2d655" name="ga05551834cc559869a180a18dd5d2d655"></a> TDSRET </td><td class="memItemRight" valign="bottom"><b>tds_alloc_compute_row</b> (<a class="el" href="a01158.html">TDSCOMPUTEINFO</a> *res_info)</td></tr> <tr class="separator:ga05551834cc559869a180a18dd5d2d655"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga1441a9787b31a97bc3ff290b04ce501a"><td class="memItemLeft" align="right" valign="top"><a id="ga1441a9787b31a97bc3ff290b04ce501a" name="ga1441a9787b31a97bc3ff290b04ce501a"></a> <a class="el" href="a01190.html">TDSCONTEXT</a> * </td><td class="memItemRight" valign="bottom"><b>tds_alloc_context</b> (void *parent)</td></tr> <tr class="separator:ga1441a9787b31a97bc3ff290b04ce501a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga34e003db01a9fa0a8df0f6a9c68d10e3"><td class="memItemLeft" align="right" valign="top"><a id="ga34e003db01a9fa0a8df0f6a9c68d10e3" name="ga34e003db01a9fa0a8df0f6a9c68d10e3"></a> <a class="el" href="a00416.html#afe061eb245f3006d93940a20415692a7">TDSCURSOR</a> * </td><td class="memItemRight" valign="bottom"><b>tds_alloc_cursor</b> (<a class="el" href="a01210.html">TDSSOCKET</a> *tds, const char *name, TDS_INT namelen, const char *query, TDS_INT querylen)</td></tr> <tr class="separator:ga34e003db01a9fa0a8df0f6a9c68d10e3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga69559de43b47f4a9e2eecc7a56527444"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00416.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00541.html#ga69559de43b47f4a9e2eecc7a56527444">tds_alloc_dynamic</a> (<a class="el" href="a01206.html">TDSCONNECTION</a> *conn, const char *id)</td></tr> <tr class="memdesc:ga69559de43b47f4a9e2eecc7a56527444"><td class="mdescLeft"> </td><td class="mdescRight">Allocate a dynamic statement. <a href="a00541.html#ga69559de43b47f4a9e2eecc7a56527444">More...</a><br /></td></tr> <tr class="separator:ga69559de43b47f4a9e2eecc7a56527444"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafb042cedd3fd60f8e7dd65164166ece4"><td class="memItemLeft" align="right" valign="top"><a id="gafb042cedd3fd60f8e7dd65164166ece4" name="gafb042cedd3fd60f8e7dd65164166ece4"></a> <a class="el" href="a01126.html">TDSLOCALE</a> * </td><td class="memItemRight" valign="bottom"><b>tds_alloc_locale</b> (void)</td></tr> <tr class="separator:gafb042cedd3fd60f8e7dd65164166ece4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaea5b386933560f96022355d370d2081b"><td class="memItemLeft" align="right" valign="top"><a id="gaea5b386933560f96022355d370d2081b" name="gaea5b386933560f96022355d370d2081b"></a> <a class="el" href="a01118.html">TDSLOGIN</a> * </td><td class="memItemRight" valign="bottom"><b>tds_alloc_login</b> (int use_environment)</td></tr> <tr class="separator:gaea5b386933560f96022355d370d2081b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga63ff41fd7ed0cfcc64a2b84605588bc0"><td class="memItemLeft" align="right" valign="top"><a id="ga63ff41fd7ed0cfcc64a2b84605588bc0" name="ga63ff41fd7ed0cfcc64a2b84605588bc0"></a> char * </td><td class="memItemRight" valign="bottom"><b>tds_alloc_lookup_sqlstate</b> (<a class="el" href="a01210.html">TDSSOCKET</a> *tds, int msgno)</td></tr> <tr class="separator:ga63ff41fd7ed0cfcc64a2b84605588bc0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab3b77daf737b2a2bcef029038bd49419"><td class="memItemLeft" align="right" valign="top"><a id="gab3b77daf737b2a2bcef029038bd49419" name="gab3b77daf737b2a2bcef029038bd49419"></a> <a class="el" href="a01198.html">TDSPACKET</a> * </td><td class="memItemRight" valign="bottom"><b>tds_alloc_packet</b> (void *buf, unsigned len)</td></tr> <tr class="separator:gab3b77daf737b2a2bcef029038bd49419"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga4bbf9a6b6d514fc62ae67f548d54d78a"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00541.html#ga4bbf9a6b6d514fc62ae67f548d54d78a">tds_alloc_param_data</a> (<a class="el" href="a01150.html">TDSCOLUMN</a> *curparam)</td></tr> <tr class="memdesc:ga4bbf9a6b6d514fc62ae67f548d54d78a"><td class="mdescLeft"> </td><td class="mdescRight">Allocate data for a parameter. <a href="a00541.html#ga4bbf9a6b6d514fc62ae67f548d54d78a">More...</a><br /></td></tr> <tr class="separator:ga4bbf9a6b6d514fc62ae67f548d54d78a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga314c65c067570dc1ef3e58bbfc4eb763"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a01158.html">TDSPARAMINFO</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00541.html#ga314c65c067570dc1ef3e58bbfc4eb763">tds_alloc_param_result</a> (<a class="el" href="a01158.html">TDSPARAMINFO</a> *old_param)</td></tr> <tr class="memdesc:ga314c65c067570dc1ef3e58bbfc4eb763"><td class="mdescLeft"> </td><td class="mdescRight">Adds a output parameter to TDSPARAMINFO. <a href="a00541.html#ga314c65c067570dc1ef3e58bbfc4eb763">More...</a><br /></td></tr> <tr class="separator:ga314c65c067570dc1ef3e58bbfc4eb763"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf8bc4a976ed6bc6c3f61b20877a81963"><td class="memItemLeft" align="right" valign="top"><a id="gaf8bc4a976ed6bc6c3f61b20877a81963" name="gaf8bc4a976ed6bc6c3f61b20877a81963"></a> <a class="el" href="a00416.html#a1efbb2f3844cb2ea89af03721ac67277">TDSRESULTINFO</a> * </td><td class="memItemRight" valign="bottom"><b>tds_alloc_results</b> (TDS_USMALLINT num_cols)</td></tr> <tr class="separator:gaf8bc4a976ed6bc6c3f61b20877a81963"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga1224fb9277112dc2ce12531d2b73b145"><td class="memItemLeft" align="right" valign="top"><a id="ga1224fb9277112dc2ce12531d2b73b145" name="ga1224fb9277112dc2ce12531d2b73b145"></a> TDSRET </td><td class="memItemRight" valign="bottom"><b>tds_alloc_row</b> (<a class="el" href="a00416.html#a1efbb2f3844cb2ea89af03721ac67277">TDSRESULTINFO</a> *res_info)</td></tr> <tr class="memdesc:ga1224fb9277112dc2ce12531d2b73b145"><td class="mdescLeft"> </td><td class="mdescRight">Allocate space for row store return NULL on out of memory. <br /></td></tr> <tr class="separator:ga1224fb9277112dc2ce12531d2b73b145"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga7718f605bb093fc319dbd1895729e954"><td class="memItemLeft" align="right" valign="top"><a id="ga7718f605bb093fc319dbd1895729e954" name="ga7718f605bb093fc319dbd1895729e954"></a> <a class="el" href="a01210.html">TDSSOCKET</a> * </td><td class="memItemRight" valign="bottom"><b>tds_alloc_socket</b> (<a class="el" href="a01190.html">TDSCONTEXT</a> *context, unsigned int bufsize)</td></tr> <tr class="separator:ga7718f605bb093fc319dbd1895729e954"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga62605ef3b49878692c69810408f2e791"><td class="memItemLeft" align="right" valign="top"><a id="ga62605ef3b49878692c69810408f2e791" name="ga62605ef3b49878692c69810408f2e791"></a>  </td><td class="memItemRight" valign="bottom"><b>TDS_COMPILE_CHECK</b> (tds_cap_len, sizeof(defaultcaps)==TDS_MAX_CAPABILITY)</td></tr> <tr class="separator:ga62605ef3b49878692c69810408f2e791"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaaec062fa63e7cd4e4441e54e24ec5334"><td class="memItemLeft" align="right" valign="top"><a id="gaaec062fa63e7cd4e4441e54e24ec5334" name="gaaec062fa63e7cd4e4441e54e24ec5334"></a>  </td><td class="memItemRight" valign="bottom"><b>TDS_COMPILE_CHECK</b> (tds_values_len, sizeof(defaultcaps.types[0].values)==14)</td></tr> <tr class="separator:gaaec062fa63e7cd4e4441e54e24ec5334"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf8d16d8cec82bc1c55af5e840c3deb67"><td class="memItemLeft" align="right" valign="top"><a id="gaf8d16d8cec82bc1c55af5e840c3deb67" name="gaf8d16d8cec82bc1c55af5e840c3deb67"></a> static void </td><td class="memItemRight" valign="bottom"><b>tds_connection_remove_socket</b> (<a class="el" href="a01206.html">TDSCONNECTION</a> *conn, <a class="el" href="a01210.html">TDSSOCKET</a> *tds)</td></tr> <tr class="separator:gaf8d16d8cec82bc1c55af5e840c3deb67"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga9745bd1ae8a4677e77c48ec6678da7bb"><td class="memItemLeft" align="right" valign="top"><a id="ga9745bd1ae8a4677e77c48ec6678da7bb" name="ga9745bd1ae8a4677e77c48ec6678da7bb"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_cursor_deallocated</b> (<a class="el" href="a01206.html">TDSCONNECTION</a> *conn, <a class="el" href="a00416.html#afe061eb245f3006d93940a20415692a7">TDSCURSOR</a> *cursor)</td></tr> <tr class="separator:ga9745bd1ae8a4677e77c48ec6678da7bb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gadeb33bf36c71d2acb8c655e8e226ca33"><td class="memItemLeft" align="right" valign="top"><a id="gadeb33bf36c71d2acb8c655e8e226ca33" name="gadeb33bf36c71d2acb8c655e8e226ca33"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_deinit_bcpinfo</b> (<a class="el" href="a01222.html">TDSBCPINFO</a> *bcpinfo)</td></tr> <tr class="separator:gadeb33bf36c71d2acb8c655e8e226ca33"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga28e51b6ea4026b2cd4204802cbc366ad"><td class="memItemLeft" align="right" valign="top"><a id="ga28e51b6ea4026b2cd4204802cbc366ad" name="ga28e51b6ea4026b2cd4204802cbc366ad"></a> static void </td><td class="memItemRight" valign="bottom"><b>tds_deinit_connection</b> (<a class="el" href="a01206.html">TDSCONNECTION</a> *conn)</td></tr> <tr class="separator:ga28e51b6ea4026b2cd4204802cbc366ad"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga1d60bf443e274797b1d1a9e7418ab962"><td class="memItemLeft" align="right" valign="top"><a id="ga1d60bf443e274797b1d1a9e7418ab962" name="ga1d60bf443e274797b1d1a9e7418ab962"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_detach_results</b> (<a class="el" href="a00416.html#a1efbb2f3844cb2ea89af03721ac67277">TDSRESULTINFO</a> *info)</td></tr> <tr class="memdesc:ga1d60bf443e274797b1d1a9e7418ab962"><td class="mdescLeft"> </td><td class="mdescRight">Detach result info from it current socket. <br /></td></tr> <tr class="separator:ga1d60bf443e274797b1d1a9e7418ab962"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac208dfc9708803e15a3a1fcc631f37f2"><td class="memItemLeft" align="right" valign="top"><a id="gac208dfc9708803e15a3a1fcc631f37f2" name="gac208dfc9708803e15a3a1fcc631f37f2"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_dynamic_deallocated</b> (<a class="el" href="a01206.html">TDSCONNECTION</a> *conn, <a class="el" href="a00416.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> *dyn)</td></tr> <tr class="separator:gac208dfc9708803e15a3a1fcc631f37f2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga8d9feb841c35d1d6cef4563778082cec"><td class="memItemLeft" align="right" valign="top"><a id="ga8d9feb841c35d1d6cef4563778082cec" name="ga8d9feb841c35d1d6cef4563778082cec"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_free_all_results</b> (<a class="el" href="a01210.html">TDSSOCKET</a> *tds)</td></tr> <tr class="separator:ga8d9feb841c35d1d6cef4563778082cec"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga08d525b2e939e860ad3f7c024ddbac17"><td class="memItemLeft" align="right" valign="top"><a id="ga08d525b2e939e860ad3f7c024ddbac17" name="ga08d525b2e939e860ad3f7c024ddbac17"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_free_bcp_column_data</b> (<a class="el" href="a01142.html">BCPCOLDATA</a> *coldata)</td></tr> <tr class="separator:ga08d525b2e939e860ad3f7c024ddbac17"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac712ccb35d6f7be77b1421d859697fa2"><td class="memItemLeft" align="right" valign="top"><a id="gac712ccb35d6f7be77b1421d859697fa2" name="gac712ccb35d6f7be77b1421d859697fa2"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_free_bcpinfo</b> (<a class="el" href="a01222.html">TDSBCPINFO</a> *bcpinfo)</td></tr> <tr class="separator:gac712ccb35d6f7be77b1421d859697fa2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gace82e37a482be1e25e49346d88e7154f"><td class="memItemLeft" align="right" valign="top"><a id="gace82e37a482be1e25e49346d88e7154f" name="gace82e37a482be1e25e49346d88e7154f"></a> static void </td><td class="memItemRight" valign="bottom"><b>tds_free_column</b> (<a class="el" href="a01150.html">TDSCOLUMN</a> *col)</td></tr> <tr class="separator:gace82e37a482be1e25e49346d88e7154f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga50f986f347399f6b5dd4ef5c7196be16"><td class="memItemLeft" align="right" valign="top"><a id="ga50f986f347399f6b5dd4ef5c7196be16" name="ga50f986f347399f6b5dd4ef5c7196be16"></a> static void </td><td class="memItemRight" valign="bottom"><b>tds_free_compute_result</b> (<a class="el" href="a01158.html">TDSCOMPUTEINFO</a> *comp_info)</td></tr> <tr class="separator:ga50f986f347399f6b5dd4ef5c7196be16"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac1aea61de548160e53538ba32343378d"><td class="memItemLeft" align="right" valign="top"><a id="gac1aea61de548160e53538ba32343378d" name="gac1aea61de548160e53538ba32343378d"></a> static void </td><td class="memItemRight" valign="bottom"><b>tds_free_compute_results</b> (<a class="el" href="a01210.html">TDSSOCKET</a> *tds)</td></tr> <tr class="separator:gac1aea61de548160e53538ba32343378d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga96e58df914233f14c06dd5ddcae61c1e"><td class="memItemLeft" align="right" valign="top"><a id="ga96e58df914233f14c06dd5ddcae61c1e" name="ga96e58df914233f14c06dd5ddcae61c1e"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_free_context</b> (<a class="el" href="a01190.html">TDSCONTEXT</a> *context)</td></tr> <tr class="separator:ga96e58df914233f14c06dd5ddcae61c1e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga29d2ce737e03ca2fdc04f3867f3c6a53"><td class="memItemLeft" align="right" valign="top"><a id="ga29d2ce737e03ca2fdc04f3867f3c6a53" name="ga29d2ce737e03ca2fdc04f3867f3c6a53"></a> static void </td><td class="memItemRight" valign="bottom"><b>tds_free_env</b> (<a class="el" href="a01206.html">TDSCONNECTION</a> *conn)</td></tr> <tr class="separator:ga29d2ce737e03ca2fdc04f3867f3c6a53"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gabdc5fee73b22345c02ab894e49ad7f95"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00541.html#gabdc5fee73b22345c02ab894e49ad7f95">tds_free_input_params</a> (<a class="el" href="a00416.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> *dyn)</td></tr> <tr class="memdesc:gabdc5fee73b22345c02ab894e49ad7f95"><td class="mdescLeft"> </td><td class="mdescRight">Frees all allocated input parameters of a dynamic statement. <a href="a00541.html#gabdc5fee73b22345c02ab894e49ad7f95">More...</a><br /></td></tr> <tr class="separator:gabdc5fee73b22345c02ab894e49ad7f95"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gacbf7aa586828a445f0aa4a03939df99c"><td class="memItemLeft" align="right" valign="top"><a id="gacbf7aa586828a445f0aa4a03939df99c" name="gacbf7aa586828a445f0aa4a03939df99c"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_free_locale</b> (<a class="el" href="a01126.html">TDSLOCALE</a> *locale)</td></tr> <tr class="separator:gacbf7aa586828a445f0aa4a03939df99c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac92bb6c3c7467bba3a8255e0ee7dffc0"><td class="memItemLeft" align="right" valign="top"><a id="gac92bb6c3c7467bba3a8255e0ee7dffc0" name="gac92bb6c3c7467bba3a8255e0ee7dffc0"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_free_login</b> (<a class="el" href="a01118.html">TDSLOGIN</a> *login)</td></tr> <tr class="separator:gac92bb6c3c7467bba3a8255e0ee7dffc0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gacb11b12b4a7be12aa60979b3d6f2548c"><td class="memItemLeft" align="right" valign="top"><a id="gacb11b12b4a7be12aa60979b3d6f2548c" name="gacb11b12b4a7be12aa60979b3d6f2548c"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_free_msg</b> (<a class="el" href="a01162.html">TDSMESSAGE</a> *message)</td></tr> <tr class="separator:gacb11b12b4a7be12aa60979b3d6f2548c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaec5e673d8e82babf6149715cfa2e0c8f"><td class="memItemLeft" align="right" valign="top"><a id="gaec5e673d8e82babf6149715cfa2e0c8f" name="gaec5e673d8e82babf6149715cfa2e0c8f"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_free_packets</b> (<a class="el" href="a01198.html">TDSPACKET</a> *packet)</td></tr> <tr class="separator:gaec5e673d8e82babf6149715cfa2e0c8f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga66cd6e3c5089ced9415a8a0e258d205a"><td class="memItemLeft" align="right" valign="top"><a id="ga66cd6e3c5089ced9415a8a0e258d205a" name="ga66cd6e3c5089ced9415a8a0e258d205a"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_free_param_result</b> (<a class="el" href="a01158.html">TDSPARAMINFO</a> *param_info)</td></tr> <tr class="memdesc:ga66cd6e3c5089ced9415a8a0e258d205a"><td class="mdescLeft"> </td><td class="mdescRight">Delete latest parameter. <br /></td></tr> <tr class="separator:ga66cd6e3c5089ced9415a8a0e258d205a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga6589548b0fe303cb816a0c136a992b04"><td class="memItemLeft" align="right" valign="top"><a id="ga6589548b0fe303cb816a0c136a992b04" name="ga6589548b0fe303cb816a0c136a992b04"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_free_param_results</b> (<a class="el" href="a01158.html">TDSPARAMINFO</a> *param_info)</td></tr> <tr class="separator:ga6589548b0fe303cb816a0c136a992b04"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf3268b18aa9df3475cdc48012bf7ddea"><td class="memItemLeft" align="right" valign="top"><a id="gaf3268b18aa9df3475cdc48012bf7ddea" name="gaf3268b18aa9df3475cdc48012bf7ddea"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_free_results</b> (<a class="el" href="a00416.html#a1efbb2f3844cb2ea89af03721ac67277">TDSRESULTINFO</a> *res_info)</td></tr> <tr class="separator:gaf3268b18aa9df3475cdc48012bf7ddea"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa92e13cfc04c6c243fa42282d5da7cce"><td class="memItemLeft" align="right" valign="top"><a id="gaa92e13cfc04c6c243fa42282d5da7cce" name="gaa92e13cfc04c6c243fa42282d5da7cce"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_free_row</b> (<a class="el" href="a00416.html#a1efbb2f3844cb2ea89af03721ac67277">TDSRESULTINFO</a> *res_info, unsigned char *row)</td></tr> <tr class="separator:gaa92e13cfc04c6c243fa42282d5da7cce"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafe4c00cab901638857e7df9e515adb09"><td class="memItemLeft" align="right" valign="top"><a id="gafe4c00cab901638857e7df9e515adb09" name="gafe4c00cab901638857e7df9e515adb09"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_free_socket</b> (<a class="el" href="a01210.html">TDSSOCKET</a> *tds)</td></tr> <tr class="separator:gafe4c00cab901638857e7df9e515adb09"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga93503e64091b51add0801abebe22abf4"><td class="memItemLeft" align="right" valign="top">static char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00541.html#ga93503e64091b51add0801abebe22abf4">tds_get_dynid</a> (<a class="el" href="a01206.html">TDSCONNECTION</a> *conn, char *id)</td></tr> <tr class="memdesc:ga93503e64091b51add0801abebe22abf4"><td class="mdescLeft"> </td><td class="mdescRight">Get an id for dynamic query based on TDS information. <a href="a00541.html#ga93503e64091b51add0801abebe22abf4">More...</a><br /></td></tr> <tr class="separator:ga93503e64091b51add0801abebe22abf4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga5f493465253d1e5d132c156476b489de"><td class="memItemLeft" align="right" valign="top"><a id="ga5f493465253d1e5d132c156476b489de" name="ga5f493465253d1e5d132c156476b489de"></a> static <a class="el" href="a01206.html">TDSCONNECTION</a> * </td><td class="memItemRight" valign="bottom"><b>tds_init_connection</b> (<a class="el" href="a01206.html">TDSCONNECTION</a> *conn, <a class="el" href="a01190.html">TDSCONTEXT</a> *context, unsigned int bufsize)</td></tr> <tr class="separator:ga5f493465253d1e5d132c156476b489de"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga4f7b22f681e7160ac03dfe8d2ae8bd39"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a01118.html">TDSLOGIN</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00541.html#ga4f7b22f681e7160ac03dfe8d2ae8bd39">tds_init_login</a> (<a class="el" href="a01118.html">TDSLOGIN</a> *login, <a class="el" href="a01126.html">TDSLOCALE</a> *locale)</td></tr> <tr class="memdesc:ga4f7b22f681e7160ac03dfe8d2ae8bd39"><td class="mdescLeft"> </td><td class="mdescRight">Initialize login structure with locale information and other stuff for connection. <a href="a00541.html#ga4f7b22f681e7160ac03dfe8d2ae8bd39">More...</a><br /></td></tr> <tr class="separator:ga4f7b22f681e7160ac03dfe8d2ae8bd39"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac96369d822464cdb487eabab4940fd5a"><td class="memItemLeft" align="right" valign="top"><a id="gac96369d822464cdb487eabab4940fd5a" name="gac96369d822464cdb487eabab4940fd5a"></a> static <a class="el" href="a01210.html">TDSSOCKET</a> * </td><td class="memItemRight" valign="bottom"><b>tds_init_socket</b> (<a class="el" href="a01210.html">TDSSOCKET</a> *<a class="el" href="a01210.html">tds_socket</a>, unsigned int bufsize)</td></tr> <tr class="separator:gac96369d822464cdb487eabab4940fd5a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga74bac2493f24764fc18ad25c10ab7faf"><td class="memItemLeft" align="right" valign="top"><a id="ga74bac2493f24764fc18ad25c10ab7faf" name="ga74bac2493f24764fc18ad25c10ab7faf"></a> static void </td><td class="memItemRight" valign="bottom"><b>tds_param_free</b> (<a class="el" href="a01150.html">TDSCOLUMN</a> *col)</td></tr> <tr class="separator:ga74bac2493f24764fc18ad25c10ab7faf"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga8645f5abc49db03d14b66f72b83a9a4c"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00541.html#ga8645f5abc49db03d14b66f72b83a9a4c">tds_realloc</a> (void **pp, size_t new_size)</td></tr> <tr class="memdesc:ga8645f5abc49db03d14b66f72b83a9a4c"><td class="mdescLeft"> </td><td class="mdescRight">Reallocate a pointer and update it if success. <a href="a00541.html#ga8645f5abc49db03d14b66f72b83a9a4c">More...</a><br /></td></tr> <tr class="separator:ga8645f5abc49db03d14b66f72b83a9a4c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga85bf906194a312de8f567c5925720e57"><td class="memItemLeft" align="right" valign="top"><a id="ga85bf906194a312de8f567c5925720e57" name="ga85bf906194a312de8f567c5925720e57"></a> <a class="el" href="a01198.html">TDSPACKET</a> * </td><td class="memItemRight" valign="bottom"><b>tds_realloc_packet</b> (<a class="el" href="a01198.html">TDSPACKET</a> *packet, unsigned len)</td></tr> <tr class="separator:ga85bf906194a312de8f567c5925720e57"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga9795ab111eaa43e1c3cae4657f175273"><td class="memItemLeft" align="right" valign="top"><a id="ga9795ab111eaa43e1c3cae4657f175273" name="ga9795ab111eaa43e1c3cae4657f175273"></a> <a class="el" href="a01210.html">TDSSOCKET</a> * </td><td class="memItemRight" valign="bottom"><b>tds_realloc_socket</b> (<a class="el" href="a01210.html">TDSSOCKET</a> *tds, size_t bufsize)</td></tr> <tr class="separator:ga9795ab111eaa43e1c3cae4657f175273"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga96f647da25ad4b920a177766f41e21aa"><td class="memItemLeft" align="right" valign="top"><a id="ga96f647da25ad4b920a177766f41e21aa" name="ga96f647da25ad4b920a177766f41e21aa"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_release_cursor</b> (<a class="el" href="a00416.html#afe061eb245f3006d93940a20415692a7">TDSCURSOR</a> **pcursor)</td></tr> <tr class="separator:ga96f647da25ad4b920a177766f41e21aa"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gabf2fdb0def5388508602ee7dd2f49506"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00541.html#gabf2fdb0def5388508602ee7dd2f49506">tds_release_dynamic</a> (<a class="el" href="a00416.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> **pdyn)</td></tr> <tr class="memdesc:gabf2fdb0def5388508602ee7dd2f49506"><td class="mdescLeft"> </td><td class="mdescRight">Frees dynamic statement. <a href="a00541.html#gabf2fdb0def5388508602ee7dd2f49506">More...</a><br /></td></tr> <tr class="separator:gabf2fdb0def5388508602ee7dd2f49506"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga38e6909ccbe74eccbfab20d7f0b20f0c"><td class="memItemLeft" align="right" valign="top"><a id="ga38e6909ccbe74eccbfab20d7f0b20f0c" name="ga38e6909ccbe74eccbfab20d7f0b20f0c"></a> static void </td><td class="memItemRight" valign="bottom"><b>tds_row_free</b> (<a class="el" href="a00416.html#a1efbb2f3844cb2ea89af03721ac67277">TDSRESULTINFO</a> *res_info, unsigned char *row)</td></tr> <tr class="separator:ga38e6909ccbe74eccbfab20d7f0b20f0c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga8ba1929d901b7b8c9b758c603142d357"><td class="memItemLeft" align="right" valign="top"><a id="ga8ba1929d901b7b8c9b758c603142d357" name="ga8ba1929d901b7b8c9b758c603142d357"></a> void </td><td class="memItemRight" valign="bottom"><b>tds_set_current_results</b> (<a class="el" href="a01210.html">TDSSOCKET</a> *tds, <a class="el" href="a00416.html#a1efbb2f3844cb2ea89af03721ac67277">TDSRESULTINFO</a> *info)</td></tr> <tr class="separator:ga8ba1929d901b7b8c9b758c603142d357"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga64b5a882ae1508c23cb399cc7ea828ac"><td class="memItemLeft" align="right" valign="top"><a id="ga64b5a882ae1508c23cb399cc7ea828ac" name="ga64b5a882ae1508c23cb399cc7ea828ac"></a> static int </td><td class="memItemRight" valign="bottom"><b>winsock_initialized</b> (void)</td></tr> <tr class="separator:ga64b5a882ae1508c23cb399cc7ea828ac"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="var-members" name="var-members"></a> Variables</h2></td></tr> <tr class="memitem:ga7c6d0241ac134fbc83e76c98c67f3730"><td class="memItemLeft" align="right" valign="top">static const <a class="el" href="a01114.html">TDS_CAPABILITIES</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00541.html#ga7c6d0241ac134fbc83e76c98c67f3730">defaultcaps</a></td></tr> <tr class="separator:ga7c6d0241ac134fbc83e76c98c67f3730"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga13b67eb4b2d563a8d7468a3085198b83"><td class="memItemLeft" align="right" valign="top"><a id="ga13b67eb4b2d563a8d7468a3085198b83" name="ga13b67eb4b2d563a8d7468a3085198b83"></a> static volatile unsigned int </td><td class="memItemRight" valign="bottom"><b>inc_num</b> = 1</td></tr> <tr class="separator:ga13b67eb4b2d563a8d7468a3085198b83"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga866157f0144446c76ea6129ce42fe14f"><td class="memItemLeft" align="right" valign="top"><a id="ga866157f0144446c76ea6129ce42fe14f" name="ga866157f0144446c76ea6129ce42fe14f"></a> const <a class="el" href="a01146.html">TDSCOLUMNFUNCS</a> </td><td class="memItemRight" valign="bottom"><b>tds_invalid_funcs</b></td></tr> <tr class="separator:ga866157f0144446c76ea6129ce42fe14f"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <p >Allocate or free resources. </p> <p >Allocation can fail only on out of memory. In such case they return NULL and leave the state as before call. Mainly function names are in the form tds_alloc_XX or tds_free_XXX. tds_alloc_XXX functions allocate structures and return pointer to allocated data while tds_free_XXX take structure pointers and free them. Some functions require additional parameters to initialize structure correctly. The main exception are structures that use reference counting. These structures have tds_alloc_XXX functions but instead of tds_free_XXX use tds_release_XXX. </p> <h2 class="groupheader">Macro Definition Documentation</h2> <a id="ga385ad1a1b9dba2d64c2dcde7a6407d54" name="ga385ad1a1b9dba2d64c2dcde7a6407d54"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga385ad1a1b9dba2d64c2dcde7a6407d54">◆ </a></span>SUPPORTED_REQ_CAP</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define SUPPORTED_REQ_CAP</td> <td>(</td> <td class="paramtype"> </td> <td class="paramname">i</td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <b>Value:</b><div class="fragment"><div class="line"> REQ(i,LANG) REQ(i,RPC) REQ(i,EVT) REQ(i,MSTMT) REQ(i,BCP) REQ(i,CURSOR) REQ(i,DYNF) \</div> <div class="line"> REQ(i,MSG) REQ(i,PARAM) REQ(i,DATA_INT1) REQ(i,DATA_INT2) REQ(i,DATA_INT4) REQ(i,DATA_BIT) \</div> <div class="line"> REQ(i,DATA_CHAR) REQ(i,DATA_VCHAR) REQ(i,DATA_BIN) REQ(i,DATA_VBIN) REQ(i,DATA_MNY8) \</div> <div class="line"> REQ(i,DATA_MNY4) REQ(i,DATA_DATE8) REQ(i,DATA_DATE4) REQ(i,DATA_FLT4) REQ(i,DATA_FLT8) \</div> <div class="line"> REQ(i,DATA_NUM) REQ(i,DATA_TEXT) REQ(i,DATA_IMAGE) REQ(i,DATA_DEC) REQ(i,DATA_LCHAR) \</div> <div class="line"> REQ(i,DATA_LBIN) REQ(i,DATA_INTN) REQ(i,DATA_DATETIMEN) REQ(i,DATA_MONEYN) \</div> <div class="line"> REQ(i,CSR_PREV) REQ(i,CSR_FIRST) REQ(i,CSR_LAST) REQ(i,CSR_ABS) REQ(i,CSR_REL) \</div> <div class="line"> REQ(i,CSR_MULTI) REQ(i,CON_INBAND) REQ(i,PROTO_TEXT) REQ(i,PROTO_BULK) \</div> <div class="line"> REQ(i,DATA_SENSITIVITY) REQ(i,DATA_BOUNDARY) REQ(i,PROTO_DYNPROC) REQ(i,DATA_FLTN) \</div> <div class="line"> REQ(i,DATA_BITN) REQ(i,DATA_INT8) REQ(i,WIDETABLE) \</div> <div class="line"> REQ(i,DATA_UINT2) REQ(i,DATA_UINT4) REQ(i,DATA_UINT8) REQ(i,DATA_UINTN) REQ(i,LARGEIDENT) \</div> <div class="line"> REQ(i,SRVPKTSIZE) REQ(i,DATA_DATE) REQ(i,DATA_TIME) REQ(i,DATA_BIGTIME) REQ(i,DATA_BIGDATETIME)</div> </div><!-- fragment --> </div> </div> <h2 class="groupheader">Function Documentation</h2> <a id="ga69559de43b47f4a9e2eecc7a56527444" name="ga69559de43b47f4a9e2eecc7a56527444"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga69559de43b47f4a9e2eecc7a56527444">◆ </a></span>tds_alloc_dynamic()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a00416.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> * tds_alloc_dynamic </td> <td>(</td> <td class="paramtype"><a class="el" href="a01206.html">TDSCONNECTION</a> * </td> <td class="paramname"><em>conn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>id</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Allocate a dynamic statement. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">conn</td><td>the connection within which to allocate the statement. </td></tr> <tr><td class="paramname">id</td><td>a character label identifying the statement. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>a pointer to the allocated structure (NULL on failure).</dd></dl> <p>tds_alloc_dynamic is used to implement placeholder code under TDS 5.0 </p> <div class="dynheader"> Here is the call graph for this function:</div> <div class="dyncontent"> <div class="center"><!-- SVG 1 --> </div> </div> </div> </div> <a id="ga4bbf9a6b6d514fc62ae67f548d54d78a" name="ga4bbf9a6b6d514fc62ae67f548d54d78a"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga4bbf9a6b6d514fc62ae67f548d54d78a">◆ </a></span>tds_alloc_param_data()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void * tds_alloc_param_data </td> <td>(</td> <td class="paramtype"><a class="el" href="a01150.html">TDSCOLUMN</a> * </td> <td class="paramname"><em>curparam</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Allocate data for a parameter. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">curparam</td><td>parameter to retrieve size information </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>NULL on failure or new data </dd></dl> </div> </div> <a id="ga314c65c067570dc1ef3e58bbfc4eb763" name="ga314c65c067570dc1ef3e58bbfc4eb763"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga314c65c067570dc1ef3e58bbfc4eb763">◆ </a></span>tds_alloc_param_result()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a01158.html">TDSPARAMINFO</a> * tds_alloc_param_result </td> <td>(</td> <td class="paramtype"><a class="el" href="a01158.html">TDSPARAMINFO</a> * </td> <td class="paramname"><em>old_param</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Adds a output parameter to TDSPARAMINFO. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">old_param</td><td>a pointer to the TDSPARAMINFO structure containing the current set of output parameter, or NULL if none exists. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>a pointer to the new TDSPARAMINFO structure.</dd></dl> <p><a class="el" href="a00541.html#ga314c65c067570dc1ef3e58bbfc4eb763" title="Adds a output parameter to TDSPARAMINFO.">tds_alloc_param_result()</a> works a bit differently than the other alloc result functions. Output parameters come in individually with no total number given in advance, so we simply call this func every time with get a TDS_PARAM_TOKEN and let it realloc the columns struct one bigger. tds_free_all_results() usually cleans up after us. </p> </div> </div> <a id="gabdc5fee73b22345c02ab894e49ad7f95" name="gabdc5fee73b22345c02ab894e49ad7f95"></a> <h2 class="memtitle"><span class="permalink"><a href="#gabdc5fee73b22345c02ab894e49ad7f95">◆ </a></span>tds_free_input_params()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void tds_free_input_params </td> <td>(</td> <td class="paramtype"><a class="el" href="a00416.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> * </td> <td class="paramname"><em>dyn</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Frees all allocated input parameters of a dynamic statement. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">dyn</td><td>the dynamic statement whose input parameter are to be freed</td></tr> </table> </dd> </dl> <p>tds_free_input_params frees all parameters for the give dynamic statement </p> </div> </div> <a id="ga93503e64091b51add0801abebe22abf4" name="ga93503e64091b51add0801abebe22abf4"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga93503e64091b51add0801abebe22abf4">◆ </a></span>tds_get_dynid()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static char * tds_get_dynid </td> <td>(</td> <td class="paramtype"><a class="el" href="a01206.html">TDSCONNECTION</a> * </td> <td class="paramname"><em>conn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>id</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Get an id for dynamic query based on TDS information. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">conn</td><td>state information for the connection and the TDS protocol </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>TDS_FAIL or TDS_SUCCESS </dd></dl> <div class="dynheader"> Here is the caller graph for this function:</div> <div class="dyncontent"> <div class="center"><!-- SVG 2 --> </div> </div> </div> </div> <a id="ga4f7b22f681e7160ac03dfe8d2ae8bd39" name="ga4f7b22f681e7160ac03dfe8d2ae8bd39"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga4f7b22f681e7160ac03dfe8d2ae8bd39">◆ </a></span>tds_init_login()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="a01118.html">TDSLOGIN</a> * tds_init_login </td> <td>(</td> <td class="paramtype"><a class="el" href="a01118.html">TDSLOGIN</a> * </td> <td class="paramname"><em>login</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a01126.html">TDSLOCALE</a> * </td> <td class="paramname"><em>locale</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Initialize login structure with locale information and other stuff for connection. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">locale</td><td>locale information (copied to configuration information) </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>login structure or NULL if initialization error </dd></dl> </div> </div> <a id="ga8645f5abc49db03d14b66f72b83a9a4c" name="ga8645f5abc49db03d14b66f72b83a9a4c"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga8645f5abc49db03d14b66f72b83a9a4c">◆ </a></span>tds_realloc()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void * tds_realloc </td> <td>(</td> <td class="paramtype">void ** </td> <td class="paramname"><em>pp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">size_t </td> <td class="paramname"><em>new_size</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Reallocate a pointer and update it if success. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pp</td><td>pointer to pointer to be reallocated </td></tr> <tr><td class="paramname">new_size</td><td>new size to be allocated </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>new pointer allocated, NULL on failure </dd></dl> </div> </div> <a id="gabf2fdb0def5388508602ee7dd2f49506" name="gabf2fdb0def5388508602ee7dd2f49506"></a> <h2 class="memtitle"><span class="permalink"><a href="#gabf2fdb0def5388508602ee7dd2f49506">◆ </a></span>tds_release_dynamic()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void tds_release_dynamic </td> <td>(</td> <td class="paramtype"><a class="el" href="a00416.html#a856d78b7438fef3d6e6c0a8e4566d978">TDSDYNAMIC</a> ** </td> <td class="paramname"><em>pdyn</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>Frees dynamic statement. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">pdyn</td><td>pointer to dynamic statement to be freed. </td></tr> </table> </dd> </dl> <div class="dynheader"> Here is the call graph for this function:</div> <div class="dyncontent"> <div class="center"><!-- SVG 3 --> </div> </div> </div> </div> <h2 class="groupheader">Variable Documentation</h2> <a id="ga7c6d0241ac134fbc83e76c98c67f3730" name="ga7c6d0241ac134fbc83e76c98c67f3730"></a> <h2 class="memtitle"><span class="permalink"><a href="#ga7c6d0241ac134fbc83e76c98c67f3730">◆ </a></span>defaultcaps</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="a01114.html">TDS_CAPABILITIES</a> defaultcaps</td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">static</span></span> </td> </tr> </table> </div><div class="memdoc"> <b>Initial value:</b><div class="fragment"><div class="line">= { {</div> <div class="line"> </div> <div class="line"> { 1, 14, { REQB(13), REQB(12), REQB(11), REQB(10), REQB(9), REQB(8), REQB(7),</div> <div class="line"> REQB(6), REQB(5), REQB(4), REQB(3), REQB(2), REQB(1), REQB(0) } },</div> <div class="line"> { 2, 14, { RESB(13), RESB(12), RESB(11), RESB(10), RESB(9), RESB(8), RESB(7),</div> <div class="line"> RESB(6), RESB(5), RESB(4), RESB(3), RESB(2), RESB(1), RESB(0) } }</div> <div class="line">} }</div> </div><!-- fragment --> </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>