JezK
Edit File: a01344.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: src/dblib/bcp.c File Reference</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> <!-- 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 id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_a40d3d1dfafadc5a5d3063931c3db36e.html">dblib</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#define-members">Macros</a> | <a href="#typedef-members">Typedefs</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"><div class="title">bcp.c File Reference</div></div> </div><!--header--> <div class="contents"> <p>Implementation of <code>db-lib</code> bulk copy functions. <a href="#details">More...</a></p> <div class="textblock"><code>#include <config.h></code><br /> <code>#include <stdarg.h></code><br /> <code>#include <stdio.h></code><br /> <code>#include <assert.h></code><br /> <code>#include <<a class="el" href="a00416_source.html">freetds/tds.h</a>></code><br /> <code>#include <freetds/iconv.h></code><br /> <code>#include <freetds/convert.h></code><br /> <code>#include <freetds/bytes.h></code><br /> <code>#include <freetds/utils/string.h></code><br /> <code>#include <freetds/encodings.h></code><br /> <code>#include <freetds/replacements.h></code><br /> <code>#include <sybfront.h></code><br /> <code>#include <<a class="el" href="a00479_source.html">sybdb.h</a>></code><br /> <code>#include <syberror.h></code><br /> <code>#include <dblib.h></code><br /> </div><div class="textblock"><div class="dynheader"> Include dependency graph for bcp.c:</div> <div class="dyncontent"> <div class="center"><!-- SVG 0 --> </div> </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:a7fe12c6938ac39e706a7fe5d204becb5"><td class="memItemLeft" align="right" valign="top"><a id="a7fe12c6938ac39e706a7fe5d204becb5" name="a7fe12c6938ac39e706a7fe5d204becb5"></a> #define </td><td class="memItemRight" valign="bottom"><b>fseeko</b>(f, o, w)   fseek(f,o,w)</td></tr> <tr class="separator:a7fe12c6938ac39e706a7fe5d204becb5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a166933163821a02b19c87befb8c752b0"><td class="memItemLeft" align="right" valign="top"><a id="a166933163821a02b19c87befb8c752b0" name="a166933163821a02b19c87befb8c752b0"></a> #define </td><td class="memItemRight" valign="bottom"><b>ftello</b>(f)   ftell(f)</td></tr> <tr class="separator:a166933163821a02b19c87befb8c752b0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a752642bb991c6c0ed0766b5ff589c578"><td class="memItemLeft" align="right" valign="top"><a id="a752642bb991c6c0ed0766b5ff589c578" name="a752642bb991c6c0ed0766b5ff589c578"></a> #define </td><td class="memItemRight" valign="bottom"><b>HOST_COL_CONV_ERROR</b>   1</td></tr> <tr class="separator:a752642bb991c6c0ed0766b5ff589c578"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a55e8e20b98d68066f9ade04a6211ef8a"><td class="memItemLeft" align="right" valign="top"><a id="a55e8e20b98d68066f9ade04a6211ef8a" name="a55e8e20b98d68066f9ade04a6211ef8a"></a> #define </td><td class="memItemRight" valign="bottom"><b>HOST_COL_NULL_ERROR</b>   2</td></tr> <tr class="separator:a55e8e20b98d68066f9ade04a6211ef8a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afa99ec4acc4ecb2dc3c2d05da15d0e3f"><td class="memItemLeft" align="right" valign="top"><a id="afa99ec4acc4ecb2dc3c2d05da15d0e3f" name="afa99ec4acc4ecb2dc3c2d05da15d0e3f"></a> #define </td><td class="memItemRight" valign="bottom"><b>MAX</b>(a, b)   ( (a) > (b) ? (a) : (b) )</td></tr> <tr class="separator:afa99ec4acc4ecb2dc3c2d05da15d0e3f"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a> Typedefs</h2></td></tr> <tr class="memitem:a40defe83f98e793eca0860cfe55904e6"><td class="memItemLeft" align="right" valign="top"><a id="a40defe83f98e793eca0860cfe55904e6" name="a40defe83f98e793eca0860cfe55904e6"></a> typedef long </td><td class="memItemRight" valign="bottom"><b>offset_type</b></td></tr> <tr class="separator:a40defe83f98e793eca0860cfe55904e6"><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:a55a07cafca38c1c3750fe69a365a31f3"><td class="memItemLeft" align="right" valign="top"><a id="a55a07cafca38c1c3750fe69a365a31f3" name="a55a07cafca38c1c3750fe69a365a31f3"></a> static STATUS </td><td class="memItemRight" valign="bottom"><b>_bcp_check_eof</b> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc, FILE *file, int icol)</td></tr> <tr class="separator:a55a07cafca38c1c3750fe69a365a31f3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4e7740b6f755d7d3f2502a47b7d71a85"><td class="memItemLeft" align="right" valign="top"><a id="a4e7740b6f755d7d3f2502a47b7d71a85" name="a4e7740b6f755d7d3f2502a47b7d71a85"></a> static TDSRET </td><td class="memItemRight" valign="bottom"><b>_bcp_convert_in</b> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc, TDS_SERVER_TYPE srctype, const TDS_CHAR *src, TDS_UINT srclen, TDS_SERVER_TYPE desttype, <a class="el" href="a01142.html">BCPCOLDATA</a> *coldata)</td></tr> <tr class="memdesc:a4e7740b6f755d7d3f2502a47b7d71a85"><td class="mdescLeft"> </td><td class="mdescRight">Convert column for input to a table. <br /></td></tr> <tr class="separator:a4e7740b6f755d7d3f2502a47b7d71a85"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a230fa5b56ae4e3509a69bd266495732b"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="a01344.html#a230fa5b56ae4e3509a69bd266495732b">_bcp_convert_out</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc, <a class="el" href="a01150.html">TDSCOLUMN</a> *curcol, <a class="el" href="a00894.html">BCP_HOSTCOLINFO</a> *hostcol, TDS_UCHAR **p_data, const char *bcpdatefmt)</td></tr> <tr class="memdesc:a230fa5b56ae4e3509a69bd266495732b"><td class="mdescLeft"> </td><td class="mdescRight">Convert column for output (usually to a file) Conversion is slightly different from input as: <a href="a01344.html#a230fa5b56ae4e3509a69bd266495732b">More...</a><br /></td></tr> <tr class="separator:a230fa5b56ae4e3509a69bd266495732b"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga7370f1223f13510d6b33e98f2de09fb5"><td class="memItemLeft" align="right" valign="top">static RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00530.html#ga7370f1223f13510d6b33e98f2de09fb5">_bcp_exec_in</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc, DBINT *rows_copied)</td></tr> <tr class="separator:ga7370f1223f13510d6b33e98f2de09fb5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae67546338cb9542a4902aa914f57f314"><td class="memItemLeft" align="right" valign="top">static RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00530.html#gae67546338cb9542a4902aa914f57f314">_bcp_exec_out</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc, DBINT *rows_copied)</td></tr> <tr class="separator:gae67546338cb9542a4902aa914f57f314"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gab672799007e720bf918caa1b33c989ea"><td class="memItemLeft" align="right" valign="top">static char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00530.html#gab672799007e720bf918caa1b33c989ea">_bcp_fgets</a> (char *buffer, int size, FILE *f)</td></tr> <tr class="separator:gab672799007e720bf918caa1b33c989ea"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gacf69ac4cbe8e3c3e6ea665e31e5e85b8"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00530.html#gacf69ac4cbe8e3c3e6ea665e31e5e85b8">_bcp_free_columns</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc)</td></tr> <tr class="separator:gacf69ac4cbe8e3c3e6ea665e31e5e85b8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa134c1c3ccc4326e693adb8357272f1d"><td class="memItemLeft" align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00530.html#gaa134c1c3ccc4326e693adb8357272f1d">_bcp_free_storage</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc)</td></tr> <tr class="separator:gaa134c1c3ccc4326e693adb8357272f1d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga0f8def4cad04c5c1e27c2b653d482dd8"><td class="memItemLeft" align="right" valign="top">static TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a00530.html#ga0f8def4cad04c5c1e27c2b653d482dd8">_bcp_get_col_data</a> (<a class="el" href="a01222.html">TDSBCPINFO</a> *bcpinfo, <a class="el" href="a01150.html">TDSCOLUMN</a> *bindcol, int offset)</td></tr> <tr class="memdesc:ga0f8def4cad04c5c1e27c2b653d482dd8"><td class="mdescLeft"> </td><td class="mdescRight">For a bcp in from program variables, get the data from the host variable. <a href="a00530.html#ga0f8def4cad04c5c1e27c2b653d482dd8">More...</a><br /></td></tr> <tr class="separator:ga0f8def4cad04c5c1e27c2b653d482dd8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga4f936fa1cb8e4373bf7b7f8a6ab96bc7"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00530.html#ga4f936fa1cb8e4373bf7b7f8a6ab96bc7">_bcp_get_term_var</a> (const BYTE *pdata, const BYTE *term, int term_len)</td></tr> <tr class="memdesc:ga4f936fa1cb8e4373bf7b7f8a6ab96bc7"><td class="mdescLeft"> </td><td class="mdescRight">Get the data for bcp-in from program variables, where the program data have been identified as character terminated, <br /> This is a low-level, internal function. <a href="a00530.html#ga4f936fa1cb8e4373bf7b7f8a6ab96bc7">More...</a><br /></td></tr> <tr class="separator:ga4f936fa1cb8e4373bf7b7f8a6ab96bc7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad53f508d8f2177a898f8022736834afd"><td class="memItemLeft" align="right" valign="top">static TDSRET </td><td class="memItemRight" valign="bottom"><a class="el" href="a01344.html#ad53f508d8f2177a898f8022736834afd">_bcp_no_get_col_data</a> (<a class="el" href="a01222.html">TDSBCPINFO</a> *bcpinfo, <a class="el" href="a01150.html">TDSCOLUMN</a> *bindcol, int offset)</td></tr> <tr class="memdesc:ad53f508d8f2177a898f8022736834afd"><td class="mdescLeft"> </td><td class="mdescRight">Function to read data from file. <a href="a01344.html#ad53f508d8f2177a898f8022736834afd">More...</a><br /></td></tr> <tr class="separator:ad53f508d8f2177a898f8022736834afd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a4aecf840771c827863c785a91e9f8a53"><td class="memItemLeft" align="right" valign="top"><a id="a4aecf840771c827863c785a91e9f8a53" name="a4aecf840771c827863c785a91e9f8a53"></a> static void </td><td class="memItemRight" valign="bottom"><b>_bcp_null_error</b> (<a class="el" href="a01222.html">TDSBCPINFO</a> *bcpinfo, int index, int offset)</td></tr> <tr class="separator:a4aecf840771c827863c785a91e9f8a53"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga1b57d952a9d72f375c3296124affa908"><td class="memItemLeft" align="right" valign="top">static STATUS </td><td class="memItemRight" valign="bottom"><a class="el" href="a00530.html#ga1b57d952a9d72f375c3296124affa908">_bcp_read_hostfile</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc, FILE *hostfile, int *row_error, bool skip)</td></tr> <tr class="separator:ga1b57d952a9d72f375c3296124affa908"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafc23d62bc86b38fb757e3ac4aadca0a4"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00530.html#gafc23d62bc86b38fb757e3ac4aadca0a4">_bcp_readfmt_colinfo</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc, char *buf, <a class="el" href="a00894.html">BCP_HOSTCOLINFO</a> *ci)</td></tr> <tr class="separator:gafc23d62bc86b38fb757e3ac4aadca0a4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaa23f8e5c7f437a94746c90292dd1cb01"><td class="memItemLeft" align="right" valign="top">DBINT </td><td class="memItemRight" valign="bottom"><a class="el" href="a00529.html#gaa23f8e5c7f437a94746c90292dd1cb01">bcp_batch</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc)</td></tr> <tr class="memdesc:gaa23f8e5c7f437a94746c90292dd1cb01"><td class="mdescLeft"> </td><td class="mdescRight">Commit a set of rows to the table. <a href="a00529.html#gaa23f8e5c7f437a94746c90292dd1cb01">More...</a><br /></td></tr> <tr class="separator:gaa23f8e5c7f437a94746c90292dd1cb01"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga6cf03708baaf02eb016b9ee77160d879"><td class="memItemLeft" align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00529.html#ga6cf03708baaf02eb016b9ee77160d879">bcp_bind</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc, BYTE *varaddr, int prefixlen, DBINT varlen, BYTE *terminator, int termlen, int db_vartype, int table_column)</td></tr> <tr class="memdesc:ga6cf03708baaf02eb016b9ee77160d879"><td class="mdescLeft"> </td><td class="mdescRight">Bind a program host variable to a database column. <a href="a00529.html#ga6cf03708baaf02eb016b9ee77160d879">More...</a><br /></td></tr> <tr class="separator:ga6cf03708baaf02eb016b9ee77160d879"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a585032f7eb5f856cf229d566e1b45f8e"><td class="memItemLeft" align="right" valign="top"><a id="a585032f7eb5f856cf229d566e1b45f8e" name="a585032f7eb5f856cf229d566e1b45f8e"></a> static int </td><td class="memItemRight" valign="bottom"><b>bcp_cache_prefix_len</b> (<a class="el" href="a00894.html">BCP_HOSTCOLINFO</a> *hostcol, const <a class="el" href="a01150.html">TDSCOLUMN</a> *curcol)</td></tr> <tr class="separator:a585032f7eb5f856cf229d566e1b45f8e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga0ed03c69e698336d015bb315ad755fd5"><td class="memItemLeft" align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00529.html#ga0ed03c69e698336d015bb315ad755fd5">bcp_colfmt</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc, int host_colnum, int host_type, int host_prefixlen, DBINT host_collen, const BYTE *host_term, int host_termlen, int table_colnum)</td></tr> <tr class="memdesc:ga0ed03c69e698336d015bb315ad755fd5"><td class="mdescLeft"> </td><td class="mdescRight">Specify the format of a datafile prior to writing to a table. <a href="a00529.html#ga0ed03c69e698336d015bb315ad755fd5">More...</a><br /></td></tr> <tr class="separator:ga0ed03c69e698336d015bb315ad755fd5"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf13b2bb12b4200752718f3a3face3870"><td class="memItemLeft" align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00529.html#gaf13b2bb12b4200752718f3a3face3870">bcp_colfmt_ps</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc, int host_colnum, int host_type, int host_prefixlen, DBINT host_collen, BYTE *host_term, int host_termlen, int table_colnum, <a class="el" href="a01302.html">DBTYPEINFO</a> *typeinfo)</td></tr> <tr class="memdesc:gaf13b2bb12b4200752718f3a3face3870"><td class="mdescLeft"> </td><td class="mdescRight">Specify the format of a host file for bulk copy purposes, with precision and scale support for numeric and decimal columns. <a href="a00529.html#gaf13b2bb12b4200752718f3a3face3870">More...</a><br /></td></tr> <tr class="separator:gaf13b2bb12b4200752718f3a3face3870"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae41d196a22c544d66212dacc5b555791"><td class="memItemLeft" align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00529.html#gae41d196a22c544d66212dacc5b555791">bcp_collen</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc, DBINT varlen, int table_column)</td></tr> <tr class="memdesc:gae41d196a22c544d66212dacc5b555791"><td class="mdescLeft"> </td><td class="mdescRight">Set the length of a host variable to be written to a table. <a href="a00529.html#gae41d196a22c544d66212dacc5b555791">More...</a><br /></td></tr> <tr class="separator:gae41d196a22c544d66212dacc5b555791"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga6498235e4ef8e41ea43b01494b28998d"><td class="memItemLeft" align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00529.html#ga6498235e4ef8e41ea43b01494b28998d">bcp_colptr</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc, BYTE *colptr, int table_column)</td></tr> <tr class="memdesc:ga6498235e4ef8e41ea43b01494b28998d"><td class="mdescLeft"> </td><td class="mdescRight">Override <a class="el" href="a00529.html#ga6cf03708baaf02eb016b9ee77160d879" title="Bind a program host variable to a database column.">bcp_bind()</a> by pointing to a different host variable. <a href="a00529.html#ga6498235e4ef8e41ea43b01494b28998d">More...</a><br /></td></tr> <tr class="separator:ga6498235e4ef8e41ea43b01494b28998d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga330b9f1028f856a9eec5115550bcb4f7"><td class="memItemLeft" align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00529.html#ga330b9f1028f856a9eec5115550bcb4f7">bcp_columns</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc, int host_colcount)</td></tr> <tr class="memdesc:ga330b9f1028f856a9eec5115550bcb4f7"><td class="mdescLeft"> </td><td class="mdescRight">Indicate how many columns are to be found in the datafile. <a href="a00529.html#ga330b9f1028f856a9eec5115550bcb4f7">More...</a><br /></td></tr> <tr class="separator:ga330b9f1028f856a9eec5115550bcb4f7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga244547855b41788fa3a67756956fbc81"><td class="memItemLeft" align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00529.html#ga244547855b41788fa3a67756956fbc81">bcp_control</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc, int field, DBINT value)</td></tr> <tr class="memdesc:ga244547855b41788fa3a67756956fbc81"><td class="mdescLeft"> </td><td class="mdescRight">Set BCP options for uploading a datafile. <a href="a00529.html#ga244547855b41788fa3a67756956fbc81">More...</a><br /></td></tr> <tr class="separator:ga244547855b41788fa3a67756956fbc81"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga8b85f79f53a62ac7a728fe626d609b65"><td class="memItemLeft" align="right" valign="top">DBINT </td><td class="memItemRight" valign="bottom"><a class="el" href="a00529.html#ga8b85f79f53a62ac7a728fe626d609b65">bcp_done</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc)</td></tr> <tr class="memdesc:ga8b85f79f53a62ac7a728fe626d609b65"><td class="mdescLeft"> </td><td class="mdescRight">Conclude the transfer of data from program variables. <a href="a00529.html#ga8b85f79f53a62ac7a728fe626d609b65">More...</a><br /></td></tr> <tr class="separator:ga8b85f79f53a62ac7a728fe626d609b65"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga7a184158b27a50f713e9cfae3b746209"><td class="memItemLeft" align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00529.html#ga7a184158b27a50f713e9cfae3b746209">bcp_exec</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc, DBINT *rows_copied)</td></tr> <tr class="memdesc:ga7a184158b27a50f713e9cfae3b746209"><td class="mdescLeft"> </td><td class="mdescRight">Write a datafile to a table. <a href="a00529.html#ga7a184158b27a50f713e9cfae3b746209">More...</a><br /></td></tr> <tr class="separator:ga7a184158b27a50f713e9cfae3b746209"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa0833443ba646bc07c0960370b923930"><td class="memItemLeft" align="right" valign="top"><a id="aa0833443ba646bc07c0960370b923930" name="aa0833443ba646bc07c0960370b923930"></a> int </td><td class="memItemRight" valign="bottom"><b>bcp_getbatchsize</b> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc)</td></tr> <tr class="separator:aa0833443ba646bc07c0960370b923930"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga220f6b043602da1028f98dacb2fd00c0"><td class="memItemLeft" align="right" valign="top">DBBOOL </td><td class="memItemRight" valign="bottom"><a class="el" href="a00529.html#ga220f6b043602da1028f98dacb2fd00c0">bcp_getl</a> (<a class="el" href="a00574.html">LOGINREC</a> *login)</td></tr> <tr class="memdesc:ga220f6b043602da1028f98dacb2fd00c0"><td class="mdescLeft"> </td><td class="mdescRight">See if BCP_SETL() was used to set the <a class="el" href="a00574.html">LOGINREC</a> for BCP work. <a href="a00529.html#ga220f6b043602da1028f98dacb2fd00c0">More...</a><br /></td></tr> <tr class="separator:ga220f6b043602da1028f98dacb2fd00c0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gada8e987c4a6225b9276c05ba3a4f47a0"><td class="memItemLeft" align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00529.html#gada8e987c4a6225b9276c05ba3a4f47a0">bcp_init</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc, const char *tblname, const char *hfile, const char *errfile, int direction)</td></tr> <tr class="memdesc:gada8e987c4a6225b9276c05ba3a4f47a0"><td class="mdescLeft"> </td><td class="mdescRight">Prepare for bulk copy operation on a table. <a href="a00529.html#gada8e987c4a6225b9276c05ba3a4f47a0">More...</a><br /></td></tr> <tr class="separator:gada8e987c4a6225b9276c05ba3a4f47a0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafec3feb5bac1cb33545ba01efb0a67b8"><td class="memItemLeft" align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00529.html#gafec3feb5bac1cb33545ba01efb0a67b8">bcp_options</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc, int option, BYTE *value, int valuelen)</td></tr> <tr class="memdesc:gafec3feb5bac1cb33545ba01efb0a67b8"><td class="mdescLeft"> </td><td class="mdescRight">Set "hints" for uploading a file. <a href="a00529.html#gafec3feb5bac1cb33545ba01efb0a67b8">More...</a><br /></td></tr> <tr class="separator:gafec3feb5bac1cb33545ba01efb0a67b8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga963c5e38bca7668afc57f5cc123d10fb"><td class="memItemLeft" align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00529.html#ga963c5e38bca7668afc57f5cc123d10fb">bcp_readfmt</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc, const char filename[])</td></tr> <tr class="memdesc:ga963c5e38bca7668afc57f5cc123d10fb"><td class="mdescLeft"> </td><td class="mdescRight">Read a format definition file. <a href="a00529.html#ga963c5e38bca7668afc57f5cc123d10fb">More...</a><br /></td></tr> <tr class="separator:ga963c5e38bca7668afc57f5cc123d10fb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf1130ac97f6af55e86ec70b0aa4f5b40"><td class="memItemLeft" align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00529.html#gaf1130ac97f6af55e86ec70b0aa4f5b40">bcp_sendrow</a> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc)</td></tr> <tr class="memdesc:gaf1130ac97f6af55e86ec70b0aa4f5b40"><td class="mdescLeft"> </td><td class="mdescRight">Write data in host variables to the table. <a href="a00529.html#gaf1130ac97f6af55e86ec70b0aa4f5b40">More...</a><br /></td></tr> <tr class="separator:gaf1130ac97f6af55e86ec70b0aa4f5b40"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab9e39bb8460194cdd7acabbbc401ad2a"><td class="memItemLeft" align="right" valign="top"><a id="ab9e39bb8460194cdd7acabbbc401ad2a" name="ab9e39bb8460194cdd7acabbbc401ad2a"></a> static RETCODE </td><td class="memItemRight" valign="bottom"><b>bcp_write_prefix</b> (FILE *hostfile, <a class="el" href="a00894.html">BCP_HOSTCOLINFO</a> *hostcol, <a class="el" href="a01150.html">TDSCOLUMN</a> *curcol, int buflen)</td></tr> <tr class="separator:ab9e39bb8460194cdd7acabbbc401ad2a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a15cd3cd88aa83e739d861f390e7c3cba"><td class="memItemLeft" align="right" valign="top"><a id="a15cd3cd88aa83e739d861f390e7c3cba" name="a15cd3cd88aa83e739d861f390e7c3cba"></a> static void </td><td class="memItemRight" valign="bottom"><b>init_hostfile_columns</b> (<a class="el" href="a00918.html">DBPROCESS</a> *dbproc)</td></tr> <tr class="separator:a15cd3cd88aa83e739d861f390e7c3cba"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga4d5be57b25a0654e2170fd656dc35489"><td class="memItemLeft" align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00530.html#ga4d5be57b25a0654e2170fd656dc35489">rtrim</a> (char *str, int len)</td></tr> <tr class="memdesc:ga4d5be57b25a0654e2170fd656dc35489"><td class="mdescLeft"> </td><td class="mdescRight">trim a string of trailing blanks <a href="a00530.html#ga4d5be57b25a0654e2170fd656dc35489">More...</a><br /></td></tr> <tr class="separator:ga4d5be57b25a0654e2170fd656dc35489"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad15e96c5e0a9d89d834c6d37b39d0645"><td class="memItemLeft" align="right" valign="top"><a id="ad15e96c5e0a9d89d834c6d37b39d0645" name="ad15e96c5e0a9d89d834c6d37b39d0645"></a> static void </td><td class="memItemRight" valign="bottom"><b>rtrim_bcpcol</b> (<a class="el" href="a01150.html">TDSCOLUMN</a> *bcpcol)</td></tr> <tr class="separator:ad15e96c5e0a9d89d834c6d37b39d0645"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa1e4fefbad536368165743a3c15deeed"><td class="memItemLeft" align="right" valign="top"><a id="aa1e4fefbad536368165743a3c15deeed" name="aa1e4fefbad536368165743a3c15deeed"></a> static int </td><td class="memItemRight" valign="bottom"><b>rtrim_u16</b> (uint16_t *str, int len, uint16_t space)</td></tr> <tr class="separator:aa1e4fefbad536368165743a3c15deeed"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p >Implementation of <code>db-lib</code> bulk copy functions. </p> </div><h2 class="groupheader">Function Documentation</h2> <a id="a230fa5b56ae4e3509a69bd266495732b" name="a230fa5b56ae4e3509a69bd266495732b"></a> <h2 class="memtitle"><span class="permalink"><a href="#a230fa5b56ae4e3509a69bd266495732b">◆ </a></span>_bcp_convert_out()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static int _bcp_convert_out </td> <td>(</td> <td class="paramtype"><a class="el" href="a00918.html">DBPROCESS</a> * </td> <td class="paramname"><em>dbproc</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a01150.html">TDSCOLUMN</a> * </td> <td class="paramname"><em>curcol</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a00894.html">BCP_HOSTCOLINFO</a> * </td> <td class="paramname"><em>hostcol</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">TDS_UCHAR ** </td> <td class="paramname"><em>p_data</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>bcpdatefmt</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>Convert column for output (usually to a file) Conversion is slightly different from input as: </p> <ul> <li>date is formatted differently;</li> <li>you have to set properly numeric while on input the column metadata are used;</li> <li>we need to make sure buffer is always at least a minimum bytes. </li> </ul> <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="ad53f508d8f2177a898f8022736834afd" name="ad53f508d8f2177a898f8022736834afd"></a> <h2 class="memtitle"><span class="permalink"><a href="#ad53f508d8f2177a898f8022736834afd">◆ </a></span>_bcp_no_get_col_data()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">static TDSRET _bcp_no_get_col_data </td> <td>(</td> <td class="paramtype"><a class="el" href="a01222.html">TDSBCPINFO</a> * </td> <td class="paramname"><em>bcpinfo</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="a01150.html">TDSCOLUMN</a> * </td> <td class="paramname"><em>bindcol</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>offset</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>Function to read data from file. </p> <p >I this case is empty as data are already on bcp_column_data </p> </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>