Current File : //usr/local/emps/share/doc/freetds/reference/a01400.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=9"/>
<meta name="generator" content="Doxygen 1.8.20"/>
<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 style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">FreeTDS API
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.20 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(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> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<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 &lt;config.h&gt;</code><br />
<code>#include &lt;stdarg.h&gt;</code><br />
<code>#include &lt;stdio.h&gt;</code><br />
<code>#include &lt;assert.h&gt;</code><br />
<code>#include &lt;<a class="el" href="a00449_source.html">freetds/tds.h</a>&gt;</code><br />
<code>#include &lt;freetds/iconv.h&gt;</code><br />
<code>#include &lt;freetds/convert.h&gt;</code><br />
<code>#include &lt;freetds/bytes.h&gt;</code><br />
<code>#include &lt;freetds/utils/string.h&gt;</code><br />
<code>#include &lt;freetds/encodings.h&gt;</code><br />
<code>#include &lt;freetds/replacements.h&gt;</code><br />
<code>#include &lt;sybfront.h&gt;</code><br />
<code>#include &lt;<a class="el" href="a00506_source.html">sybdb.h</a>&gt;</code><br />
<code>#include &lt;syberror.h&gt;</code><br />
<code>#include &lt;dblib.h&gt;</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 name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:a7fe12c6938ac39e706a7fe5d204becb5"><td class="memItemLeft" align="right" valign="top"><a id="a7fe12c6938ac39e706a7fe5d204becb5"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>fseeko</b>(f,  o,  w)&#160;&#160;&#160;fseek(f,o,w)</td></tr>
<tr class="separator:a7fe12c6938ac39e706a7fe5d204becb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a166933163821a02b19c87befb8c752b0"><td class="memItemLeft" align="right" valign="top"><a id="a166933163821a02b19c87befb8c752b0"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>ftello</b>(f)&#160;&#160;&#160;ftell(f)</td></tr>
<tr class="separator:a166933163821a02b19c87befb8c752b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a752642bb991c6c0ed0766b5ff589c578"><td class="memItemLeft" align="right" valign="top"><a id="a752642bb991c6c0ed0766b5ff589c578"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>HOST_COL_CONV_ERROR</b>&#160;&#160;&#160;1</td></tr>
<tr class="separator:a752642bb991c6c0ed0766b5ff589c578"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55e8e20b98d68066f9ade04a6211ef8a"><td class="memItemLeft" align="right" valign="top"><a id="a55e8e20b98d68066f9ade04a6211ef8a"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>HOST_COL_NULL_ERROR</b>&#160;&#160;&#160;2</td></tr>
<tr class="separator:a55e8e20b98d68066f9ade04a6211ef8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa99ec4acc4ecb2dc3c2d05da15d0e3f"><td class="memItemLeft" align="right" valign="top"><a id="afa99ec4acc4ecb2dc3c2d05da15d0e3f"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>MAX</b>(a,  b)&#160;&#160;&#160;( (a) &gt; (b) ? (a) : (b) )</td></tr>
<tr class="separator:afa99ec4acc4ecb2dc3c2d05da15d0e3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a40defe83f98e793eca0860cfe55904e6"><td class="memItemLeft" align="right" valign="top"><a id="a40defe83f98e793eca0860cfe55904e6"></a>
typedef long&#160;</td><td class="memItemRight" valign="bottom"><b>offset_type</b></td></tr>
<tr class="separator:a40defe83f98e793eca0860cfe55904e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a55a07cafca38c1c3750fe69a365a31f3"><td class="memItemLeft" align="right" valign="top"><a id="a55a07cafca38c1c3750fe69a365a31f3"></a>
static STATUS&#160;</td><td class="memItemRight" valign="bottom"><b>_bcp_check_eof</b> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc, FILE *file, int icol)</td></tr>
<tr class="separator:a55a07cafca38c1c3750fe69a365a31f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e7740b6f755d7d3f2502a47b7d71a85"><td class="memItemLeft" align="right" valign="top"><a id="a4e7740b6f755d7d3f2502a47b7d71a85"></a>
static TDSRET&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01400.html#a4e7740b6f755d7d3f2502a47b7d71a85">_bcp_convert_in</a> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc, TDS_SERVER_TYPE srctype, const TDS_CHAR *src, TDS_UINT srclen, TDS_SERVER_TYPE desttype, <a class="el" href="a01167.html">BCPCOLDATA</a> *coldata)</td></tr>
<tr class="memdesc:a4e7740b6f755d7d3f2502a47b7d71a85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert column for input to a table. <br /></td></tr>
<tr class="separator:a4e7740b6f755d7d3f2502a47b7d71a85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a230fa5b56ae4e3509a69bd266495732b"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01400.html#a230fa5b56ae4e3509a69bd266495732b">_bcp_convert_out</a> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc, <a class="el" href="a01175.html">TDSCOLUMN</a> *curcol, <a class="el" href="a00919.html">BCP_HOSTCOLINFO</a> *hostcol, TDS_UCHAR **p_data, const char *bcpdatefmt)</td></tr>
<tr class="memdesc:a230fa5b56ae4e3509a69bd266495732b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert column for output (usually to a file) Conversion is slightly different from input as:  <a href="a01400.html#a230fa5b56ae4e3509a69bd266495732b">More...</a><br /></td></tr>
<tr class="separator:a230fa5b56ae4e3509a69bd266495732b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7370f1223f13510d6b33e98f2de09fb5"><td class="memItemLeft" align="right" valign="top">static RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00551.html#ga7370f1223f13510d6b33e98f2de09fb5">_bcp_exec_in</a> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc, DBINT *rows_copied)</td></tr>
<tr class="separator:ga7370f1223f13510d6b33e98f2de09fb5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae67546338cb9542a4902aa914f57f314"><td class="memItemLeft" align="right" valign="top">static RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00551.html#gae67546338cb9542a4902aa914f57f314">_bcp_exec_out</a> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc, DBINT *rows_copied)</td></tr>
<tr class="separator:gae67546338cb9542a4902aa914f57f314"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf4e2c59203f2af21bb2803ef4a69bfa8"><td class="memItemLeft" align="right" valign="top">static char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00551.html#gaf4e2c59203f2af21bb2803ef4a69bfa8">_bcp_fgets</a> (char *buffer, int size, FILE *f)</td></tr>
<tr class="separator:gaf4e2c59203f2af21bb2803ef4a69bfa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gacf69ac4cbe8e3c3e6ea665e31e5e85b8"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00551.html#gacf69ac4cbe8e3c3e6ea665e31e5e85b8">_bcp_free_columns</a> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc)</td></tr>
<tr class="separator:gacf69ac4cbe8e3c3e6ea665e31e5e85b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa134c1c3ccc4326e693adb8357272f1d"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00551.html#gaa134c1c3ccc4326e693adb8357272f1d">_bcp_free_storage</a> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc)</td></tr>
<tr class="separator:gaa134c1c3ccc4326e693adb8357272f1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0f8def4cad04c5c1e27c2b653d482dd8"><td class="memItemLeft" align="right" valign="top">static TDSRET&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00551.html#ga0f8def4cad04c5c1e27c2b653d482dd8">_bcp_get_col_data</a> (<a class="el" href="a01247.html">TDSBCPINFO</a> *bcpinfo, <a class="el" href="a01175.html">TDSCOLUMN</a> *bindcol, int offset)</td></tr>
<tr class="memdesc:ga0f8def4cad04c5c1e27c2b653d482dd8"><td class="mdescLeft">&#160;</td><td class="mdescRight">For a bcp in from program variables, get the data from the host variable.  <a href="a00551.html#ga0f8def4cad04c5c1e27c2b653d482dd8">More...</a><br /></td></tr>
<tr class="separator:ga0f8def4cad04c5c1e27c2b653d482dd8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4f936fa1cb8e4373bf7b7f8a6ab96bc7"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00551.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">&#160;</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="a00551.html#ga4f936fa1cb8e4373bf7b7f8a6ab96bc7">More...</a><br /></td></tr>
<tr class="separator:ga4f936fa1cb8e4373bf7b7f8a6ab96bc7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad53f508d8f2177a898f8022736834afd"><td class="memItemLeft" align="right" valign="top">static TDSRET&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a01400.html#ad53f508d8f2177a898f8022736834afd">_bcp_no_get_col_data</a> (<a class="el" href="a01247.html">TDSBCPINFO</a> *bcpinfo, <a class="el" href="a01175.html">TDSCOLUMN</a> *bindcol, int offset)</td></tr>
<tr class="memdesc:ad53f508d8f2177a898f8022736834afd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Function to read data from file.  <a href="a01400.html#ad53f508d8f2177a898f8022736834afd">More...</a><br /></td></tr>
<tr class="separator:ad53f508d8f2177a898f8022736834afd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4aecf840771c827863c785a91e9f8a53"><td class="memItemLeft" align="right" valign="top"><a id="a4aecf840771c827863c785a91e9f8a53"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>_bcp_null_error</b> (<a class="el" href="a01247.html">TDSBCPINFO</a> *bcpinfo, int index, int offset)</td></tr>
<tr class="separator:a4aecf840771c827863c785a91e9f8a53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1b57d952a9d72f375c3296124affa908"><td class="memItemLeft" align="right" valign="top">static STATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00551.html#ga1b57d952a9d72f375c3296124affa908">_bcp_read_hostfile</a> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc, FILE *hostfile, int *row_error, bool skip)</td></tr>
<tr class="separator:ga1b57d952a9d72f375c3296124affa908"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafc23d62bc86b38fb757e3ac4aadca0a4"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00551.html#gafc23d62bc86b38fb757e3ac4aadca0a4">_bcp_readfmt_colinfo</a> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc, char *buf, <a class="el" href="a00919.html">BCP_HOSTCOLINFO</a> *ci)</td></tr>
<tr class="separator:gafc23d62bc86b38fb757e3ac4aadca0a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa23f8e5c7f437a94746c90292dd1cb01"><td class="memItemLeft" align="right" valign="top">DBINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00550.html#gaa23f8e5c7f437a94746c90292dd1cb01">bcp_batch</a> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc)</td></tr>
<tr class="memdesc:gaa23f8e5c7f437a94746c90292dd1cb01"><td class="mdescLeft">&#160;</td><td class="mdescRight">Commit a set of rows to the table.  <a href="a00550.html#gaa23f8e5c7f437a94746c90292dd1cb01">More...</a><br /></td></tr>
<tr class="separator:gaa23f8e5c7f437a94746c90292dd1cb01"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6cf03708baaf02eb016b9ee77160d879"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00550.html#ga6cf03708baaf02eb016b9ee77160d879">bcp_bind</a> (<a class="el" href="a00943.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">&#160;</td><td class="mdescRight">Bind a program host variable to a database column.  <a href="a00550.html#ga6cf03708baaf02eb016b9ee77160d879">More...</a><br /></td></tr>
<tr class="separator:ga6cf03708baaf02eb016b9ee77160d879"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a585032f7eb5f856cf229d566e1b45f8e"><td class="memItemLeft" align="right" valign="top"><a id="a585032f7eb5f856cf229d566e1b45f8e"></a>
static int&#160;</td><td class="memItemRight" valign="bottom"><b>bcp_cache_prefix_len</b> (<a class="el" href="a00919.html">BCP_HOSTCOLINFO</a> *hostcol, const <a class="el" href="a01175.html">TDSCOLUMN</a> *curcol)</td></tr>
<tr class="separator:a585032f7eb5f856cf229d566e1b45f8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0ed03c69e698336d015bb315ad755fd5"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00550.html#ga0ed03c69e698336d015bb315ad755fd5">bcp_colfmt</a> (<a class="el" href="a00943.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">&#160;</td><td class="mdescRight">Specify the format of a datafile prior to writing to a table.  <a href="a00550.html#ga0ed03c69e698336d015bb315ad755fd5">More...</a><br /></td></tr>
<tr class="separator:ga0ed03c69e698336d015bb315ad755fd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf13b2bb12b4200752718f3a3face3870"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00550.html#gaf13b2bb12b4200752718f3a3face3870">bcp_colfmt_ps</a> (<a class="el" href="a00943.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="a01327.html">DBTYPEINFO</a> *typeinfo)</td></tr>
<tr class="memdesc:gaf13b2bb12b4200752718f3a3face3870"><td class="mdescLeft">&#160;</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="a00550.html#gaf13b2bb12b4200752718f3a3face3870">More...</a><br /></td></tr>
<tr class="separator:gaf13b2bb12b4200752718f3a3face3870"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae41d196a22c544d66212dacc5b555791"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00550.html#gae41d196a22c544d66212dacc5b555791">bcp_collen</a> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc, DBINT varlen, int table_column)</td></tr>
<tr class="memdesc:gae41d196a22c544d66212dacc5b555791"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the length of a host variable to be written to a table.  <a href="a00550.html#gae41d196a22c544d66212dacc5b555791">More...</a><br /></td></tr>
<tr class="separator:gae41d196a22c544d66212dacc5b555791"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6498235e4ef8e41ea43b01494b28998d"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00550.html#ga6498235e4ef8e41ea43b01494b28998d">bcp_colptr</a> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc, BYTE *colptr, int table_column)</td></tr>
<tr class="memdesc:ga6498235e4ef8e41ea43b01494b28998d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Override <a class="el" href="a00550.html#ga6cf03708baaf02eb016b9ee77160d879" title="Bind a program host variable to a database column.">bcp_bind()</a> by pointing to a different host variable.  <a href="a00550.html#ga6498235e4ef8e41ea43b01494b28998d">More...</a><br /></td></tr>
<tr class="separator:ga6498235e4ef8e41ea43b01494b28998d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga330b9f1028f856a9eec5115550bcb4f7"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00550.html#ga330b9f1028f856a9eec5115550bcb4f7">bcp_columns</a> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc, int host_colcount)</td></tr>
<tr class="memdesc:ga330b9f1028f856a9eec5115550bcb4f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Indicate how many columns are to be found in the datafile.  <a href="a00550.html#ga330b9f1028f856a9eec5115550bcb4f7">More...</a><br /></td></tr>
<tr class="separator:ga330b9f1028f856a9eec5115550bcb4f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga244547855b41788fa3a67756956fbc81"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00550.html#ga244547855b41788fa3a67756956fbc81">bcp_control</a> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc, int field, DBINT value)</td></tr>
<tr class="memdesc:ga244547855b41788fa3a67756956fbc81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set BCP options for uploading a datafile.  <a href="a00550.html#ga244547855b41788fa3a67756956fbc81">More...</a><br /></td></tr>
<tr class="separator:ga244547855b41788fa3a67756956fbc81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8b85f79f53a62ac7a728fe626d609b65"><td class="memItemLeft" align="right" valign="top">DBINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00550.html#ga8b85f79f53a62ac7a728fe626d609b65">bcp_done</a> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc)</td></tr>
<tr class="memdesc:ga8b85f79f53a62ac7a728fe626d609b65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Conclude the transfer of data from program variables.  <a href="a00550.html#ga8b85f79f53a62ac7a728fe626d609b65">More...</a><br /></td></tr>
<tr class="separator:ga8b85f79f53a62ac7a728fe626d609b65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a184158b27a50f713e9cfae3b746209"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00550.html#ga7a184158b27a50f713e9cfae3b746209">bcp_exec</a> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc, DBINT *rows_copied)</td></tr>
<tr class="memdesc:ga7a184158b27a50f713e9cfae3b746209"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a datafile to a table.  <a href="a00550.html#ga7a184158b27a50f713e9cfae3b746209">More...</a><br /></td></tr>
<tr class="separator:ga7a184158b27a50f713e9cfae3b746209"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0833443ba646bc07c0960370b923930"><td class="memItemLeft" align="right" valign="top"><a id="aa0833443ba646bc07c0960370b923930"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>bcp_getbatchsize</b> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc)</td></tr>
<tr class="separator:aa0833443ba646bc07c0960370b923930"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga220f6b043602da1028f98dacb2fd00c0"><td class="memItemLeft" align="right" valign="top">DBBOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00550.html#ga220f6b043602da1028f98dacb2fd00c0">bcp_getl</a> (<a class="el" href="a00595.html">LOGINREC</a> *login)</td></tr>
<tr class="memdesc:ga220f6b043602da1028f98dacb2fd00c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">See if <a class="el" href="a00547.html#ga5a626d228e82be0af8449d2b8c278241" title="Enable (or prevent) bcp operations for connections made with a login.">BCP_SETL()</a> was used to set the <a class="el" href="a00595.html">LOGINREC</a> for BCP work.  <a href="a00550.html#ga220f6b043602da1028f98dacb2fd00c0">More...</a><br /></td></tr>
<tr class="separator:ga220f6b043602da1028f98dacb2fd00c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gada8e987c4a6225b9276c05ba3a4f47a0"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00550.html#gada8e987c4a6225b9276c05ba3a4f47a0">bcp_init</a> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc, const char *tblname, const char *hfile, const char *errfile, int direction)</td></tr>
<tr class="memdesc:gada8e987c4a6225b9276c05ba3a4f47a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepare for bulk copy operation on a table.  <a href="a00550.html#gada8e987c4a6225b9276c05ba3a4f47a0">More...</a><br /></td></tr>
<tr class="separator:gada8e987c4a6225b9276c05ba3a4f47a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafec3feb5bac1cb33545ba01efb0a67b8"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00550.html#gafec3feb5bac1cb33545ba01efb0a67b8">bcp_options</a> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc, int option, BYTE *value, int valuelen)</td></tr>
<tr class="memdesc:gafec3feb5bac1cb33545ba01efb0a67b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set "hints" for uploading a file.  <a href="a00550.html#gafec3feb5bac1cb33545ba01efb0a67b8">More...</a><br /></td></tr>
<tr class="separator:gafec3feb5bac1cb33545ba01efb0a67b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga963c5e38bca7668afc57f5cc123d10fb"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00550.html#ga963c5e38bca7668afc57f5cc123d10fb">bcp_readfmt</a> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc, const char filename[])</td></tr>
<tr class="memdesc:ga963c5e38bca7668afc57f5cc123d10fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read a format definition file.  <a href="a00550.html#ga963c5e38bca7668afc57f5cc123d10fb">More...</a><br /></td></tr>
<tr class="separator:ga963c5e38bca7668afc57f5cc123d10fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf1130ac97f6af55e86ec70b0aa4f5b40"><td class="memItemLeft" align="right" valign="top">RETCODE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00550.html#gaf1130ac97f6af55e86ec70b0aa4f5b40">bcp_sendrow</a> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc)</td></tr>
<tr class="memdesc:gaf1130ac97f6af55e86ec70b0aa4f5b40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write data in host variables to the table.  <a href="a00550.html#gaf1130ac97f6af55e86ec70b0aa4f5b40">More...</a><br /></td></tr>
<tr class="separator:gaf1130ac97f6af55e86ec70b0aa4f5b40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9e39bb8460194cdd7acabbbc401ad2a"><td class="memItemLeft" align="right" valign="top"><a id="ab9e39bb8460194cdd7acabbbc401ad2a"></a>
static RETCODE&#160;</td><td class="memItemRight" valign="bottom"><b>bcp_write_prefix</b> (FILE *hostfile, <a class="el" href="a00919.html">BCP_HOSTCOLINFO</a> *hostcol, <a class="el" href="a01175.html">TDSCOLUMN</a> *curcol, int buflen)</td></tr>
<tr class="separator:ab9e39bb8460194cdd7acabbbc401ad2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15cd3cd88aa83e739d861f390e7c3cba"><td class="memItemLeft" align="right" valign="top"><a id="a15cd3cd88aa83e739d861f390e7c3cba"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>init_hostfile_columns</b> (<a class="el" href="a00943.html">DBPROCESS</a> *dbproc)</td></tr>
<tr class="separator:a15cd3cd88aa83e739d861f390e7c3cba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4d5be57b25a0654e2170fd656dc35489"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00551.html#ga4d5be57b25a0654e2170fd656dc35489">rtrim</a> (char *str, int len)</td></tr>
<tr class="memdesc:ga4d5be57b25a0654e2170fd656dc35489"><td class="mdescLeft">&#160;</td><td class="mdescRight">trim a string of trailing blanks  <a href="a00551.html#ga4d5be57b25a0654e2170fd656dc35489">More...</a><br /></td></tr>
<tr class="separator:ga4d5be57b25a0654e2170fd656dc35489"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad15e96c5e0a9d89d834c6d37b39d0645"><td class="memItemLeft" align="right" valign="top"><a id="ad15e96c5e0a9d89d834c6d37b39d0645"></a>
static void&#160;</td><td class="memItemRight" valign="bottom"><b>rtrim_bcpcol</b> (<a class="el" href="a01175.html">TDSCOLUMN</a> *bcpcol)</td></tr>
<tr class="separator:ad15e96c5e0a9d89d834c6d37b39d0645"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1e4fefbad536368165743a3c15deeed"><td class="memItemLeft" align="right" valign="top"><a id="aa1e4fefbad536368165743a3c15deeed"></a>
static int&#160;</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">&#160;</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"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a230fa5b56ae4e3509a69bd266495732b">&#9670;&nbsp;</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="a00943.html">DBPROCESS</a> *&#160;</td>
          <td class="paramname"><em>dbproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01175.html">TDSCOLUMN</a> *&#160;</td>
          <td class="paramname"><em>curcol</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00919.html">BCP_HOSTCOLINFO</a> *&#160;</td>
          <td class="paramname"><em>hostcol</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">TDS_UCHAR **&#160;</td>
          <td class="paramname"><em>p_data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>bcpdatefmt</em>&#160;</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"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad53f508d8f2177a898f8022736834afd">&#9670;&nbsp;</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="a01247.html">TDSBCPINFO</a> *&#160;</td>
          <td class="paramname"><em>bcpinfo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01175.html">TDSCOLUMN</a> *&#160;</td>
          <td class="paramname"><em>bindcol</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>offset</em>&#160;</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&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
</small></address>
</body>
</html>