Sophie

Sophie

distrib > Mageia > 5 > x86_64 > media > core-release > by-pkgid > 13eec89779171a321fe518ddb0e0fec6 > files > 214

freetds-doc-0.91-8.mga5.x86_64.rpm

<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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"/>
<title>FreeTDS API: Bulk copy functions</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.3 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <img id="MSearchSelect" src="search/search.png"
             onmouseover="return searchBox.OnSearchSelectShow()"
             onmouseout="return searchBox.OnSearchSelectHide()"
             alt=""/>
        <input type="text" id="MSearchField" value="Search" accesskey="S"
             onfocus="searchBox.OnSearchFieldFocus(true)" 
             onblur="searchBox.OnSearchFieldFocus(false)" 
             onkeyup="searchBox.OnSearchFieldChange(event)"/>
        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
        </div>
      </li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>Bulk copy functions<br/>
<small>
[<a class="el" href="a00285.html">The db-lib API</a>]</small>
</h1>
<p>Functions to bulk-copy (a/k/a <em>bcp</em>) data to/from the database.  
<a href="#_details">More...</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Modules</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00289.html">Internal bcp functions</a></td></tr>

<p><tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Static functions internal to the bcp library. </p>
<br/></td></tr>
</p>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">DBINT&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#gaa23f8e5c7f437a94746c90292dd1cb01">bcp_batch</a> (<a class="el" href="a00098.html">DBPROCESS</a> *dbproc)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Commit a set of rows to the table.  <a href="#gaa23f8e5c7f437a94746c90292dd1cb01"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RETCODE&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#gaf08c7f8e74ddf23b83800bc378821b35">bcp_bind</a> (<a class="el" href="a00098.html">DBPROCESS</a> *dbproc, BYTE *varaddr, int prefixlen, DBINT varlen, BYTE *terminator, int termlen, int vartype, int table_column)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Bind a program host variable to a database column.  <a href="#gaf08c7f8e74ddf23b83800bc378821b35"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RETCODE&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga0ed03c69e698336d015bb315ad755fd5">bcp_colfmt</a> (<a class="el" href="a00098.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><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Specify the format of a datafile prior to writing to a table.  <a href="#ga0ed03c69e698336d015bb315ad755fd5"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RETCODE&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#gaf13b2bb12b4200752718f3a3face3870">bcp_colfmt_ps</a> (<a class="el" href="a00098.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="a00064.html">DBTYPEINFO</a> *typeinfo)</td></tr>
<tr><td class="mdescLeft">&nbsp;</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="#gaf13b2bb12b4200752718f3a3face3870"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RETCODE&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#gae41d196a22c544d66212dacc5b555791">bcp_collen</a> (<a class="el" href="a00098.html">DBPROCESS</a> *dbproc, DBINT varlen, int table_column)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set the length of a host variable to be written to a table.  <a href="#gae41d196a22c544d66212dacc5b555791"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RETCODE&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga6498235e4ef8e41ea43b01494b28998d">bcp_colptr</a> (<a class="el" href="a00098.html">DBPROCESS</a> *dbproc, BYTE *colptr, int table_column)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Override <a class="el" href="a00288.html#gaf08c7f8e74ddf23b83800bc378821b35" title="Bind a program host variable to a database column.">bcp_bind()</a> by pointing to a different host variable.  <a href="#ga6498235e4ef8e41ea43b01494b28998d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RETCODE&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga330b9f1028f856a9eec5115550bcb4f7">bcp_columns</a> (<a class="el" href="a00098.html">DBPROCESS</a> *dbproc, int host_colcount)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Indicate how many columns are to be found in the datafile.  <a href="#ga330b9f1028f856a9eec5115550bcb4f7"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RETCODE&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga244547855b41788fa3a67756956fbc81">bcp_control</a> (<a class="el" href="a00098.html">DBPROCESS</a> *dbproc, int field, DBINT value)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set BCP options for uploading a datafile.  <a href="#ga244547855b41788fa3a67756956fbc81"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">DBINT&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga8b85f79f53a62ac7a728fe626d609b65">bcp_done</a> (<a class="el" href="a00098.html">DBPROCESS</a> *dbproc)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Conclude the transfer of data from program variables.  <a href="#ga8b85f79f53a62ac7a728fe626d609b65"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RETCODE&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga7a184158b27a50f713e9cfae3b746209">bcp_exec</a> (<a class="el" href="a00098.html">DBPROCESS</a> *dbproc, DBINT *rows_copied)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write a datafile to a table.  <a href="#ga7a184158b27a50f713e9cfae3b746209"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">DBBOOL&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga220f6b043602da1028f98dacb2fd00c0">bcp_getl</a> (<a class="el" href="a00070.html">LOGINREC</a> *login)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">See if <a class="el" href="a00285.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="a00070.html">LOGINREC</a> for BCP work.  <a href="#ga220f6b043602da1028f98dacb2fd00c0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RETCODE&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#gada8e987c4a6225b9276c05ba3a4f47a0">bcp_init</a> (<a class="el" href="a00098.html">DBPROCESS</a> *dbproc, const char *tblname, const char *hfile, const char *errfile, int direction)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Prepare for bulk copy operation on a table.  <a href="#gada8e987c4a6225b9276c05ba3a4f47a0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RETCODE&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#gafec3feb5bac1cb33545ba01efb0a67b8">bcp_options</a> (<a class="el" href="a00098.html">DBPROCESS</a> *dbproc, int option, BYTE *value, int valuelen)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Set "hints" for uploading a file.  <a href="#gafec3feb5bac1cb33545ba01efb0a67b8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RETCODE&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#ga963c5e38bca7668afc57f5cc123d10fb">bcp_readfmt</a> (<a class="el" href="a00098.html">DBPROCESS</a> *dbproc, const char filename[])</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Read a format definition file.  <a href="#ga963c5e38bca7668afc57f5cc123d10fb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">RETCODE&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00288.html#gaf1130ac97f6af55e86ec70b0aa4f5b40">bcp_sendrow</a> (<a class="el" href="a00098.html">DBPROCESS</a> *dbproc)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Write data in host variables to the table.  <a href="#gaf1130ac97f6af55e86ec70b0aa4f5b40"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Functions to bulk-copy (a/k/a <em>bcp</em>) data to/from the database. </p>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="gaa23f8e5c7f437a94746c90292dd1cb01"></a><!-- doxytag: member="bcp.c::bcp_batch" ref="gaa23f8e5c7f437a94746c90292dd1cb01" args="(DBPROCESS *dbproc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBINT bcp_batch </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00098.html">DBPROCESS</a> *&nbsp;</td>
          <td class="paramname"> <em>dbproc</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Commit a set of rows to the table. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dbproc</em>&nbsp;</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  </table>
  </dd>
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>If not called, <a class="el" href="a00288.html#ga8b85f79f53a62ac7a728fe626d609b65" title="Conclude the transfer of data from program variables.">bcp_done()</a> will cause the rows to be saved. </dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Count of rows saved, or -1 on error. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00288.html#gaf08c7f8e74ddf23b83800bc378821b35" title="Bind a program host variable to a database column.">bcp_bind()</a>, <a class="el" href="a00288.html#ga8b85f79f53a62ac7a728fe626d609b65" title="Conclude the transfer of data from program variables.">bcp_done()</a>, <a class="el" href="a00288.html#gaf1130ac97f6af55e86ec70b0aa4f5b40" title="Write data in host variables to the table.">bcp_sendrow()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gaf08c7f8e74ddf23b83800bc378821b35"></a><!-- doxytag: member="bcp.c::bcp_bind" ref="gaf08c7f8e74ddf23b83800bc378821b35" args="(DBPROCESS *dbproc, BYTE *varaddr, int prefixlen, DBINT varlen, BYTE *terminator, int termlen, int vartype, int table_column)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RETCODE bcp_bind </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00098.html">DBPROCESS</a> *&nbsp;</td>
          <td class="paramname"> <em>dbproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">BYTE *&nbsp;</td>
          <td class="paramname"> <em>varaddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>prefixlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DBINT&nbsp;</td>
          <td class="paramname"> <em>varlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">BYTE *&nbsp;</td>
          <td class="paramname"> <em>terminator</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>termlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>vartype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>table_column</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Bind a program host variable to a database column. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dbproc</em>&nbsp;</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>varaddr</em>&nbsp;</td><td>address of host variable </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>prefixlen</em>&nbsp;</td><td>length of any prefix found at the beginning of <em>varaddr</em>, in bytes. Use zero for fixed-length datatypes. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>varlen</em>&nbsp;</td><td>bytes of data in <em>varaddr</em>. Zero for NULL, -1 for fixed-length datatypes. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>terminator</em>&nbsp;</td><td>byte sequence that marks the end of the data in <em>varaddr</em> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>termlen</em>&nbsp;</td><td>length of <em>terminator</em> </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>vartype</em>&nbsp;</td><td>datatype of the host variable </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>table_column</em>&nbsp;</td><td>Nth column, starting at 1, in the table.</td></tr>
  </table>
  </dd>
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>The order of operation is:<ul>
<li><a class="el" href="a00288.html#gada8e987c4a6225b9276c05ba3a4f47a0" title="Prepare for bulk copy operation on a table.">bcp_init()</a> with <em>hfile</em> == NULL and <em>direction</em> == DB_IN.</li>
<li><a class="el" href="a00288.html#gaf08c7f8e74ddf23b83800bc378821b35" title="Bind a program host variable to a database column.">bcp_bind()</a>, once per column you want to write to</li>
<li><a class="el" href="a00288.html#gaa23f8e5c7f437a94746c90292dd1cb01" title="Commit a set of rows to the table.">bcp_batch()</a>, optionally, to commit a set of rows</li>
<li><a class="el" href="a00288.html#ga8b85f79f53a62ac7a728fe626d609b65" title="Conclude the transfer of data from program variables.">bcp_done()</a> </li>
</ul>
</dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SUCCEED or FAIL. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00288.html#gaa23f8e5c7f437a94746c90292dd1cb01" title="Commit a set of rows to the table.">bcp_batch()</a>, <a class="el" href="a00288.html#ga0ed03c69e698336d015bb315ad755fd5" title="Specify the format of a datafile prior to writing to a table.">bcp_colfmt()</a>, <a class="el" href="a00288.html#gae41d196a22c544d66212dacc5b555791" title="Set the length of a host variable to be written to a table.">bcp_collen()</a>, <a class="el" href="a00288.html#ga6498235e4ef8e41ea43b01494b28998d" title="Override bcp_bind() by pointing to a different host variable.">bcp_colptr()</a>, <a class="el" href="a00288.html#ga330b9f1028f856a9eec5115550bcb4f7" title="Indicate how many columns are to be found in the datafile.">bcp_columns()</a>, <a class="el" href="a00288.html#ga244547855b41788fa3a67756956fbc81" title="Set BCP options for uploading a datafile.">bcp_control()</a>, <a class="el" href="a00288.html#ga8b85f79f53a62ac7a728fe626d609b65" title="Conclude the transfer of data from program variables.">bcp_done()</a>, <a class="el" href="a00288.html#ga7a184158b27a50f713e9cfae3b746209" title="Write a datafile to a table.">bcp_exec()</a>, bcp_moretext(), <a class="el" href="a00288.html#gaf1130ac97f6af55e86ec70b0aa4f5b40" title="Write data in host variables to the table.">bcp_sendrow()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga0ed03c69e698336d015bb315ad755fd5"></a><!-- doxytag: member="bcp.c::bcp_colfmt" ref="ga0ed03c69e698336d015bb315ad755fd5" args="(DBPROCESS *dbproc, int host_colnum, int host_type, int host_prefixlen, DBINT host_collen, const BYTE *host_term, int host_termlen, int table_colnum)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RETCODE bcp_colfmt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00098.html">DBPROCESS</a> *&nbsp;</td>
          <td class="paramname"> <em>dbproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>host_colnum</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>host_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>host_prefixlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DBINT&nbsp;</td>
          <td class="paramname"> <em>host_collen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const BYTE *&nbsp;</td>
          <td class="paramname"> <em>host_term</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>host_termlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>table_colnum</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Specify the format of a datafile prior to writing to a table. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dbproc</em>&nbsp;</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>host_colnum</em>&nbsp;</td><td>datafile column number (starting with 1, not zero). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>host_type</em>&nbsp;</td><td>dataype token describing the data type in <em>host_colnum</em>. E.g. SYBCHAR for character data. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>host_prefixlen</em>&nbsp;</td><td>size of the prefix in the datafile column, if any. For delimited files: zero. May be 0, 1, 2, or 4 bytes. The prefix will be read as an integer (not a character string) from the data file, and will be interpreted the data size of that column, in bytes. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>host_collen</em>&nbsp;</td><td>maximum size of datafile column, exclusive of any prefix/terminator. Just the data, ma'am. Special values:</p>
<ul>
<li><b>0</b> indicates NULL.</li>
<li><b>-1</b> for fixed-length non-null datatypes</li>
<li><b>-1</b> for variable-length datatypes (e.g. SYBCHAR) where the length is established by a prefix/terminator. </li>
</ul>
</td></tr>
    <tr><td valign="top"></td><td valign="top"><em>host_term</em>&nbsp;</td><td>the sequence of characters that will serve as a column terminator (delimiter) in the datafile. Often a tab character, but can be any string of any length. Zero indicates no terminator. Special characters:</p>
<ul>
<li><b>'\0'</b> terminator is an ASCII NUL.</li>
<li><b>'\t'</b> terminator is an ASCII TAB.</li>
<li><b>'\n'</b> terminator is an ASCII NL. </li>
</ul>
</td></tr>
    <tr><td valign="top"></td><td valign="top"><em>host_termlen</em>&nbsp;</td><td>the length of <em>host_term</em>, in bytes. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>table_colnum</em>&nbsp;</td><td>Nth column, starting at 1, in the table that maps to <em>host_colnum</em>. If there is a column in the datafile that does not map to a table column, set <em>table_colnum</em> to zero.</td></tr>
  </table>
  </dd>
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd><a class="el" href="a00288.html#ga0ed03c69e698336d015bb315ad755fd5" title="Specify the format of a datafile prior to writing to a table.">bcp_colfmt()</a> is called once for each column in the datafile, as specified with <a class="el" href="a00288.html#ga330b9f1028f856a9eec5115550bcb4f7" title="Indicate how many columns are to be found in the datafile.">bcp_columns()</a>. In so doing, you describe to FreeTDS how to parse each line of your datafile, and where to send each field.</dd></dl>
<p>When a prefix or terminator is used with variable-length data, <em>host_collen</em> may have one of three values:</p>
<ul>
<li><b>positive</b> indicating the maximum number of bytes to be used</li>
<li><b>0</b> indicating NULL</li>
<li><b>-1</b> indicating no maximum; all data, as described by the prefix/terminator will be used.</li>
</ul>
<dl class="return"><dt><b>Returns:</b></dt><dd>SUCCEED or FAIL. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00288.html#gaa23f8e5c7f437a94746c90292dd1cb01" title="Commit a set of rows to the table.">bcp_batch()</a>, <a class="el" href="a00288.html#gaf08c7f8e74ddf23b83800bc378821b35" title="Bind a program host variable to a database column.">bcp_bind()</a>, <a class="el" href="a00288.html#gaf13b2bb12b4200752718f3a3face3870" title="Specify the format of a host file for bulk copy purposes, with precision and scale...">bcp_colfmt_ps()</a>, <a class="el" href="a00288.html#gae41d196a22c544d66212dacc5b555791" title="Set the length of a host variable to be written to a table.">bcp_collen()</a>, <a class="el" href="a00288.html#ga6498235e4ef8e41ea43b01494b28998d" title="Override bcp_bind() by pointing to a different host variable.">bcp_colptr()</a>, <a class="el" href="a00288.html#ga330b9f1028f856a9eec5115550bcb4f7" title="Indicate how many columns are to be found in the datafile.">bcp_columns()</a>, <a class="el" href="a00288.html#ga244547855b41788fa3a67756956fbc81" title="Set BCP options for uploading a datafile.">bcp_control()</a>, <a class="el" href="a00288.html#ga8b85f79f53a62ac7a728fe626d609b65" title="Conclude the transfer of data from program variables.">bcp_done()</a>, <a class="el" href="a00288.html#ga7a184158b27a50f713e9cfae3b746209" title="Write a datafile to a table.">bcp_exec()</a>, <a class="el" href="a00288.html#gada8e987c4a6225b9276c05ba3a4f47a0" title="Prepare for bulk copy operation on a table.">bcp_init()</a>, <a class="el" href="a00288.html#gaf1130ac97f6af55e86ec70b0aa4f5b40" title="Write data in host variables to the table.">bcp_sendrow</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gaf13b2bb12b4200752718f3a3face3870"></a><!-- doxytag: member="bcp.c::bcp_colfmt_ps" ref="gaf13b2bb12b4200752718f3a3face3870" args="(DBPROCESS *dbproc, int host_colnum, int host_type, int host_prefixlen, DBINT host_collen, BYTE *host_term, int host_termlen, int table_colnum, DBTYPEINFO *typeinfo)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RETCODE bcp_colfmt_ps </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00098.html">DBPROCESS</a> *&nbsp;</td>
          <td class="paramname"> <em>dbproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>host_colnum</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>host_type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>host_prefixlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DBINT&nbsp;</td>
          <td class="paramname"> <em>host_collen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">BYTE *&nbsp;</td>
          <td class="paramname"> <em>host_term</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>host_termlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>table_colnum</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00064.html">DBTYPEINFO</a> *&nbsp;</td>
          <td class="paramname"> <em>typeinfo</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Specify the format of a host file for bulk copy purposes, with precision and scale support for numeric and decimal columns. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dbproc</em>&nbsp;</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>host_colnum</em>&nbsp;</td><td>datafile column number (starting with 1, not zero). </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>host_type</em>&nbsp;</td><td>dataype token describing the data type in <em>host_colnum</em>. E.g. SYBCHAR for character data. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>host_prefixlen</em>&nbsp;</td><td>size of the prefix in the datafile column, if any. For delimited files: zero. May be 0, 1, 2, or 4 bytes. The prefix will be read as an integer (not a character string) from the data file, and will be interpreted the data size of that column, in bytes. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>host_collen</em>&nbsp;</td><td>maximum size of datafile column, exclusive of any prefix/terminator. Just the data, ma'am. Special values:</p>
<ul>
<li><b>0</b> indicates NULL.</li>
<li><b>-1</b> for fixed-length non-null datatypes</li>
<li><b>-1</b> for variable-length datatypes (e.g. SYBCHAR) where the length is established by a prefix/terminator. </li>
</ul>
</td></tr>
    <tr><td valign="top"></td><td valign="top"><em>host_term</em>&nbsp;</td><td>the sequence of characters that will serve as a column terminator (delimiter) in the datafile. Often a tab character, but can be any string of any length. Zero indicates no terminator. Special characters:</p>
<ul>
<li><b>'\0'</b> terminator is an ASCII NUL.</li>
<li><b>'\t'</b> terminator is an ASCII TAB.</li>
<li><b>'\n'</b> terminator is an ASCII NL. </li>
</ul>
</td></tr>
    <tr><td valign="top"></td><td valign="top"><em>host_termlen</em>&nbsp;</td><td>the length of <em>host_term</em>, in bytes. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>table_colnum</em>&nbsp;</td><td>Nth column, starting at 1, in the table that maps to <em>host_colnum</em>. If there is a column in the datafile that does not map to a table column, set <em>table_colnum</em> to zero. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>typeinfo</em>&nbsp;</td><td>something </td></tr>
  </table>
  </dd>
</dl>
<dl class="todo"><dt><b><a class="el" href="a00306.html#_todo000002">Todo:</a></b></dt><dd>Not implemented. </dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SUCCEED or FAIL. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00288.html#gaa23f8e5c7f437a94746c90292dd1cb01" title="Commit a set of rows to the table.">bcp_batch()</a>, <a class="el" href="a00288.html#gaf08c7f8e74ddf23b83800bc378821b35" title="Bind a program host variable to a database column.">bcp_bind()</a>, <a class="el" href="a00288.html#ga0ed03c69e698336d015bb315ad755fd5" title="Specify the format of a datafile prior to writing to a table.">bcp_colfmt()</a>, <a class="el" href="a00288.html#gae41d196a22c544d66212dacc5b555791" title="Set the length of a host variable to be written to a table.">bcp_collen()</a>, <a class="el" href="a00288.html#ga6498235e4ef8e41ea43b01494b28998d" title="Override bcp_bind() by pointing to a different host variable.">bcp_colptr()</a>, <a class="el" href="a00288.html#ga330b9f1028f856a9eec5115550bcb4f7" title="Indicate how many columns are to be found in the datafile.">bcp_columns()</a>, <a class="el" href="a00288.html#ga244547855b41788fa3a67756956fbc81" title="Set BCP options for uploading a datafile.">bcp_control()</a>, <a class="el" href="a00288.html#ga8b85f79f53a62ac7a728fe626d609b65" title="Conclude the transfer of data from program variables.">bcp_done()</a>, <a class="el" href="a00288.html#ga7a184158b27a50f713e9cfae3b746209" title="Write a datafile to a table.">bcp_exec()</a>, <a class="el" href="a00288.html#gada8e987c4a6225b9276c05ba3a4f47a0" title="Prepare for bulk copy operation on a table.">bcp_init()</a>, <a class="el" href="a00288.html#gaf1130ac97f6af55e86ec70b0aa4f5b40" title="Write data in host variables to the table.">bcp_sendrow</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gae41d196a22c544d66212dacc5b555791"></a><!-- doxytag: member="bcp.c::bcp_collen" ref="gae41d196a22c544d66212dacc5b555791" args="(DBPROCESS *dbproc, DBINT varlen, int table_column)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RETCODE bcp_collen </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00098.html">DBPROCESS</a> *&nbsp;</td>
          <td class="paramname"> <em>dbproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DBINT&nbsp;</td>
          <td class="paramname"> <em>varlen</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>table_column</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set the length of a host variable to be written to a table. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dbproc</em>&nbsp;</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>varlen</em>&nbsp;</td><td>size of the variable, in bytes, or</p>
<ul>
<li><b>0</b> indicating NULL</li>
<li><b>-1</b> indicating size is determined by the prefix or terminator. (If both a prefix and a terminator are present, bcp is supposed to use the smaller of the two. This feature might or might not actually work.) </li>
</ul>
</td></tr>
    <tr><td valign="top"></td><td valign="top"><em>table_column</em>&nbsp;</td><td>the number of the column in the table (starting with 1, not zero).</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SUCCEED or FAIL. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00288.html#gaf08c7f8e74ddf23b83800bc378821b35" title="Bind a program host variable to a database column.">bcp_bind()</a>, <a class="el" href="a00288.html#ga6498235e4ef8e41ea43b01494b28998d" title="Override bcp_bind() by pointing to a different host variable.">bcp_colptr()</a>, <a class="el" href="a00288.html#gaf1130ac97f6af55e86ec70b0aa4f5b40" title="Write data in host variables to the table.">bcp_sendrow()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga6498235e4ef8e41ea43b01494b28998d"></a><!-- doxytag: member="bcp.c::bcp_colptr" ref="ga6498235e4ef8e41ea43b01494b28998d" args="(DBPROCESS *dbproc, BYTE *colptr, int table_column)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RETCODE bcp_colptr </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00098.html">DBPROCESS</a> *&nbsp;</td>
          <td class="paramname"> <em>dbproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">BYTE *&nbsp;</td>
          <td class="paramname"> <em>colptr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>table_column</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Override <a class="el" href="a00288.html#gaf08c7f8e74ddf23b83800bc378821b35" title="Bind a program host variable to a database column.">bcp_bind()</a> by pointing to a different host variable. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dbproc</em>&nbsp;</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>colptr</em>&nbsp;</td><td>The pointer, the address of your variable. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>table_column</em>&nbsp;</td><td>The 1-based column ordinal in the table. </td></tr>
  </table>
  </dd>
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>Use between calls to <a class="el" href="a00288.html#gaf1130ac97f6af55e86ec70b0aa4f5b40" title="Write data in host variables to the table.">bcp_sendrow()</a>. After calling <a class="el" href="a00288.html#ga6498235e4ef8e41ea43b01494b28998d" title="Override bcp_bind() by pointing to a different host variable.">bcp_colptr()</a>, subsequent calls to <a class="el" href="a00288.html#gaf1130ac97f6af55e86ec70b0aa4f5b40" title="Write data in host variables to the table.">bcp_sendrow()</a> will bind to the new address. </dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SUCCEED or FAIL. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00288.html#gaf08c7f8e74ddf23b83800bc378821b35" title="Bind a program host variable to a database column.">bcp_bind()</a>, <a class="el" href="a00288.html#gae41d196a22c544d66212dacc5b555791" title="Set the length of a host variable to be written to a table.">bcp_collen()</a>, <a class="el" href="a00288.html#gaf1130ac97f6af55e86ec70b0aa4f5b40" title="Write data in host variables to the table.">bcp_sendrow()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga330b9f1028f856a9eec5115550bcb4f7"></a><!-- doxytag: member="bcp.c::bcp_columns" ref="ga330b9f1028f856a9eec5115550bcb4f7" args="(DBPROCESS *dbproc, int host_colcount)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RETCODE bcp_columns </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00098.html">DBPROCESS</a> *&nbsp;</td>
          <td class="paramname"> <em>dbproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>host_colcount</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Indicate how many columns are to be found in the datafile. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dbproc</em>&nbsp;</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>host_colcount</em>&nbsp;</td><td>count of columns in the datafile, irrespective of how many you intend to use. </td></tr>
  </table>
  </dd>
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>This function describes the file as it is, not how it will be used.</dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SUCCEED or FAIL. It's hard to see how it could fail. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00288.html#ga0ed03c69e698336d015bb315ad755fd5" title="Specify the format of a datafile prior to writing to a table.">bcp_colfmt()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga244547855b41788fa3a67756956fbc81"></a><!-- doxytag: member="bcp.c::bcp_control" ref="ga244547855b41788fa3a67756956fbc81" args="(DBPROCESS *dbproc, int field, DBINT value)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RETCODE bcp_control </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00098.html">DBPROCESS</a> *&nbsp;</td>
          <td class="paramname"> <em>dbproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>field</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DBINT&nbsp;</td>
          <td class="paramname"> <em>value</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set BCP options for uploading a datafile. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dbproc</em>&nbsp;</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>field</em>&nbsp;</td><td>symbolic constant indicating the option to be set, one of:</p>
<ul>
<li><b>BCPMAXERRS</b> Maximum errors tolerated before quitting. The default is 10.</li>
<li><b>BCPFIRST</b> The first row to read in the datafile. The default is 1.</li>
<li><b>BCPLAST</b> The last row to read in the datafile. The default is to copy all rows. A value of -1 resets this field to its default?</li>
<li><b>BCPBATCH</b> The number of rows per batch. Default is 0, meaning a single batch. </li>
</ul>
</td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The value for <em>field</em>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>These options control the behavior of <a class="el" href="a00288.html#ga7a184158b27a50f713e9cfae3b746209" title="Write a datafile to a table.">bcp_exec()</a>. When writing to a table from application host memory variables, program logic controls error tolerance and batch size.</dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SUCCEED or FAIL. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00288.html#gaa23f8e5c7f437a94746c90292dd1cb01" title="Commit a set of rows to the table.">bcp_batch()</a>, <a class="el" href="a00288.html#gaf08c7f8e74ddf23b83800bc378821b35" title="Bind a program host variable to a database column.">bcp_bind()</a>, <a class="el" href="a00288.html#ga0ed03c69e698336d015bb315ad755fd5" title="Specify the format of a datafile prior to writing to a table.">bcp_colfmt()</a>, <a class="el" href="a00288.html#gae41d196a22c544d66212dacc5b555791" title="Set the length of a host variable to be written to a table.">bcp_collen()</a>, <a class="el" href="a00288.html#ga6498235e4ef8e41ea43b01494b28998d" title="Override bcp_bind() by pointing to a different host variable.">bcp_colptr()</a>, <a class="el" href="a00288.html#ga330b9f1028f856a9eec5115550bcb4f7" title="Indicate how many columns are to be found in the datafile.">bcp_columns()</a>, <a class="el" href="a00288.html#ga8b85f79f53a62ac7a728fe626d609b65" title="Conclude the transfer of data from program variables.">bcp_done()</a>, <a class="el" href="a00288.html#ga7a184158b27a50f713e9cfae3b746209" title="Write a datafile to a table.">bcp_exec()</a>, <a class="el" href="a00288.html#gafec3feb5bac1cb33545ba01efb0a67b8" title="Set &quot;hints&quot; for uploading a file.">bcp_options()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga8b85f79f53a62ac7a728fe626d609b65"></a><!-- doxytag: member="bcp.c::bcp_done" ref="ga8b85f79f53a62ac7a728fe626d609b65" args="(DBPROCESS *dbproc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBINT bcp_done </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00098.html">DBPROCESS</a> *&nbsp;</td>
          <td class="paramname"> <em>dbproc</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Conclude the transfer of data from program variables. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dbproc</em>&nbsp;</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
  </table>
  </dd>
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>Do not overlook this function. According to Sybase, failure to call <a class="el" href="a00288.html#ga8b85f79f53a62ac7a728fe626d609b65" title="Conclude the transfer of data from program variables.">bcp_done()</a> "will result in unpredictable errors". </dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>As with <a class="el" href="a00288.html#gaa23f8e5c7f437a94746c90292dd1cb01" title="Commit a set of rows to the table.">bcp_batch()</a>, the count of rows saved, or -1 on error. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00288.html#gaa23f8e5c7f437a94746c90292dd1cb01" title="Commit a set of rows to the table.">bcp_batch()</a>, <a class="el" href="a00288.html#gaf08c7f8e74ddf23b83800bc378821b35" title="Bind a program host variable to a database column.">bcp_bind()</a>, bcp_moretext(), <a class="el" href="a00288.html#gaf1130ac97f6af55e86ec70b0aa4f5b40" title="Write data in host variables to the table.">bcp_sendrow()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga7a184158b27a50f713e9cfae3b746209"></a><!-- doxytag: member="bcp.c::bcp_exec" ref="ga7a184158b27a50f713e9cfae3b746209" args="(DBPROCESS *dbproc, DBINT *rows_copied)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RETCODE bcp_exec </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00098.html">DBPROCESS</a> *&nbsp;</td>
          <td class="paramname"> <em>dbproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">DBINT *&nbsp;</td>
          <td class="paramname"> <em>rows_copied</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Write a datafile to a table. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dbproc</em>&nbsp;</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>rows_copied</em>&nbsp;</td><td>bcp_exec will write the count of rows successfully written to this address. If <em>rows_copied</em> is NULL, it will be ignored by db-lib.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SUCCEED or FAIL. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00288.html#gaa23f8e5c7f437a94746c90292dd1cb01" title="Commit a set of rows to the table.">bcp_batch()</a>, <a class="el" href="a00288.html#gaf08c7f8e74ddf23b83800bc378821b35" title="Bind a program host variable to a database column.">bcp_bind()</a>, <a class="el" href="a00288.html#ga0ed03c69e698336d015bb315ad755fd5" title="Specify the format of a datafile prior to writing to a table.">bcp_colfmt()</a>, <a class="el" href="a00288.html#gae41d196a22c544d66212dacc5b555791" title="Set the length of a host variable to be written to a table.">bcp_collen()</a>, <a class="el" href="a00288.html#ga6498235e4ef8e41ea43b01494b28998d" title="Override bcp_bind() by pointing to a different host variable.">bcp_colptr()</a>, <a class="el" href="a00288.html#ga330b9f1028f856a9eec5115550bcb4f7" title="Indicate how many columns are to be found in the datafile.">bcp_columns()</a>, <a class="el" href="a00288.html#ga244547855b41788fa3a67756956fbc81" title="Set BCP options for uploading a datafile.">bcp_control()</a>, <a class="el" href="a00288.html#ga8b85f79f53a62ac7a728fe626d609b65" title="Conclude the transfer of data from program variables.">bcp_done()</a>, <a class="el" href="a00288.html#gada8e987c4a6225b9276c05ba3a4f47a0" title="Prepare for bulk copy operation on a table.">bcp_init()</a>, <a class="el" href="a00288.html#gaf1130ac97f6af55e86ec70b0aa4f5b40" title="Write data in host variables to the table.">bcp_sendrow()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga220f6b043602da1028f98dacb2fd00c0"></a><!-- doxytag: member="bcp.c::bcp_getl" ref="ga220f6b043602da1028f98dacb2fd00c0" args="(LOGINREC *login)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">DBBOOL bcp_getl </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00070.html">LOGINREC</a> *&nbsp;</td>
          <td class="paramname"> <em>login</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>See if <a class="el" href="a00285.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="a00070.html">LOGINREC</a> for BCP work. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>login</em>&nbsp;</td><td>Address of the <a class="el" href="a00070.html">LOGINREC</a> variable to be passed to <a class="el" href="a00156.html#ae408d8e1c2ab0767d8bfd26d00d1ff6a" title="Normally not used.">dbopen()</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>TRUE or FALSE. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00285.html#ga5a626d228e82be0af8449d2b8c278241" title="Enable (or prevent) bcp operations for connections made with a login.">BCP_SETL()</a>, <a class="el" href="a00288.html#gada8e987c4a6225b9276c05ba3a4f47a0" title="Prepare for bulk copy operation on a table.">bcp_init()</a>, <a class="el" href="a00286.html#ga0984798bb806f7451a53bffa7e2c430f" title="Allocate a LOGINREC structure.">dblogin()</a>, <a class="el" href="a00156.html#ae408d8e1c2ab0767d8bfd26d00d1ff6a" title="Normally not used.">dbopen()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gada8e987c4a6225b9276c05ba3a4f47a0"></a><!-- doxytag: member="bcp.c::bcp_init" ref="gada8e987c4a6225b9276c05ba3a4f47a0" args="(DBPROCESS *dbproc, const char *tblname, const char *hfile, const char *errfile, int direction)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RETCODE bcp_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00098.html">DBPROCESS</a> *&nbsp;</td>
          <td class="paramname"> <em>dbproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>tblname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>hfile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>errfile</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>direction</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Prepare for bulk copy operation on a table. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dbproc</em>&nbsp;</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>tblname</em>&nbsp;</td><td>the name of the table receiving or providing the data. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>hfile</em>&nbsp;</td><td>the data file opposite the table, if any. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>errfile</em>&nbsp;</td><td>the "error file" captures messages and, if errors are encountered, copies of any rows that could not be written to the table. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>direction</em>&nbsp;</td><td>one of</p>
<ul>
<li><b>DB_IN</b> writing to the table</li>
<li><b>DB_OUT</b> writing to the host file</li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd><a class="el" href="a00288.html#gada8e987c4a6225b9276c05ba3a4f47a0" title="Prepare for bulk copy operation on a table.">bcp_init()</a> sets the host file data format and acquires the table metadata. It is called before the other bulk copy functions.</dd></dl>
<p>When writing to a table, bcp can use as its data source a data file (<em>hfile</em>), or program data in an application's variables. In the latter case, call <a class="el" href="a00288.html#gaf08c7f8e74ddf23b83800bc378821b35" title="Bind a program host variable to a database column.">bcp_bind()</a> to associate your data with the appropriate table column. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>SUCCEED or FAIL. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00285.html#ga5a626d228e82be0af8449d2b8c278241" title="Enable (or prevent) bcp operations for connections made with a login.">BCP_SETL()</a>, <a class="el" href="a00288.html#gaf08c7f8e74ddf23b83800bc378821b35" title="Bind a program host variable to a database column.">bcp_bind()</a>, <a class="el" href="a00288.html#ga8b85f79f53a62ac7a728fe626d609b65" title="Conclude the transfer of data from program variables.">bcp_done()</a>, <a class="el" href="a00288.html#ga7a184158b27a50f713e9cfae3b746209" title="Write a datafile to a table.">bcp_exec()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="gafec3feb5bac1cb33545ba01efb0a67b8"></a><!-- doxytag: member="bcp.c::bcp_options" ref="gafec3feb5bac1cb33545ba01efb0a67b8" args="(DBPROCESS *dbproc, int option, BYTE *value, int valuelen)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RETCODE bcp_options </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00098.html">DBPROCESS</a> *&nbsp;</td>
          <td class="paramname"> <em>dbproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>option</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">BYTE *&nbsp;</td>
          <td class="paramname"> <em>value</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&nbsp;</td>
          <td class="paramname"> <em>valuelen</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Set "hints" for uploading a file. </p>
<p>A FreeTDS-only function.</p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dbproc</em>&nbsp;</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>option</em>&nbsp;</td><td>symbolic constant indicating the option to be set, one of:</p>
<ul>
<li><b>BCPLABELED</b> Not implemented.</li>
<li><b>BCPHINTS</b> The hint to be passed when the bulk-copy begins. </li>
</ul>
</td></tr>
    <tr><td valign="top"></td><td valign="top"><em>value</em>&nbsp;</td><td>The string constant for <em>option</em> a/k/a the hint. One of:</p>
<ul>
<li><b>ORDER</b> The data are ordered in accordance with the table's clustered index.</li>
<li><b>ROWS_PER_BATCH</b> The batch size</li>
<li><b>KILOBYTES_PER_BATCH</b> The approximate number of kilobytes to use for a batch size</li>
<li><b>TABLOCK</b> Lock the table</li>
<li><b>CHECK_CONSTRAINTS</b> Apply constraints </li>
</ul>
</td></tr>
    <tr><td valign="top"></td><td valign="top"><em>valuelen</em>&nbsp;</td><td>The strlen of <em>value</em>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SUCCEED or FAIL. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00288.html#ga244547855b41788fa3a67756956fbc81" title="Set BCP options for uploading a datafile.">bcp_control()</a>, <a class="el" href="a00288.html#ga7a184158b27a50f713e9cfae3b746209" title="Write a datafile to a table.">bcp_exec()</a>, </dd></dl>
<dl class="todo"><dt><b><a class="el" href="a00306.html#_todo000003">Todo:</a></b></dt><dd>Simplify. Remove <em>valuelen</em>, and dbproc-&gt;bcpinfo-&gt;hint = strdup(hints[i]) </dd></dl>

</div>
</div>
<a class="anchor" id="ga963c5e38bca7668afc57f5cc123d10fb"></a><!-- doxytag: member="bcp.c::bcp_readfmt" ref="ga963c5e38bca7668afc57f5cc123d10fb" args="(DBPROCESS *dbproc, const char filename[])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RETCODE bcp_readfmt </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00098.html">DBPROCESS</a> *&nbsp;</td>
          <td class="paramname"> <em>dbproc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char&nbsp;</td>
          <td class="paramname"> <em>filename</em>[]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Read a format definition file. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dbproc</em>&nbsp;</td><td>contains all information needed by db-lib to manage communications with the server. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>filename</em>&nbsp;</td><td>Name that will be passed to fopen(3).</td></tr>
  </table>
  </dd>
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>Reads a format file and calls <a class="el" href="a00288.html#ga330b9f1028f856a9eec5115550bcb4f7" title="Indicate how many columns are to be found in the datafile.">bcp_columns()</a> and <a class="el" href="a00288.html#ga0ed03c69e698336d015bb315ad755fd5" title="Specify the format of a datafile prior to writing to a table.">bcp_colfmt()</a> as needed.</dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SUCCEED or FAIL. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00288.html#ga0ed03c69e698336d015bb315ad755fd5" title="Specify the format of a datafile prior to writing to a table.">bcp_colfmt()</a>, <a class="el" href="a00288.html#gaf13b2bb12b4200752718f3a3face3870" title="Specify the format of a host file for bulk copy purposes, with precision and scale...">bcp_colfmt_ps()</a>, <a class="el" href="a00288.html#ga330b9f1028f856a9eec5115550bcb4f7" title="Indicate how many columns are to be found in the datafile.">bcp_columns()</a>, bcp_writefmt() </dd></dl>

</div>
</div>
<a class="anchor" id="gaf1130ac97f6af55e86ec70b0aa4f5b40"></a><!-- doxytag: member="bcp.c::bcp_sendrow" ref="gaf1130ac97f6af55e86ec70b0aa4f5b40" args="(DBPROCESS *dbproc)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">RETCODE bcp_sendrow </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00098.html">DBPROCESS</a> *&nbsp;</td>
          <td class="paramname"> <em>dbproc</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Write data in host variables to the table. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>dbproc</em>&nbsp;</td><td>contains all information needed by db-lib to manage communications with the server.</td></tr>
  </table>
  </dd>
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd>Call <a class="el" href="a00288.html#gaf08c7f8e74ddf23b83800bc378821b35" title="Bind a program host variable to a database column.">bcp_bind()</a> first to describe the variables to be used. Use <a class="el" href="a00288.html#gaa23f8e5c7f437a94746c90292dd1cb01" title="Commit a set of rows to the table.">bcp_batch()</a> to commit sets of rows. After sending the last row call <a class="el" href="a00288.html#ga8b85f79f53a62ac7a728fe626d609b65" title="Conclude the transfer of data from program variables.">bcp_done()</a>. </dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>SUCCEED or FAIL. </dd></dl>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="a00288.html#gaa23f8e5c7f437a94746c90292dd1cb01" title="Commit a set of rows to the table.">bcp_batch()</a>, <a class="el" href="a00288.html#gaf08c7f8e74ddf23b83800bc378821b35" title="Bind a program host variable to a database column.">bcp_bind()</a>, <a class="el" href="a00288.html#ga0ed03c69e698336d015bb315ad755fd5" title="Specify the format of a datafile prior to writing to a table.">bcp_colfmt()</a>, <a class="el" href="a00288.html#gae41d196a22c544d66212dacc5b555791" title="Set the length of a host variable to be written to a table.">bcp_collen()</a>, <a class="el" href="a00288.html#ga6498235e4ef8e41ea43b01494b28998d" title="Override bcp_bind() by pointing to a different host variable.">bcp_colptr()</a>, <a class="el" href="a00288.html#ga330b9f1028f856a9eec5115550bcb4f7" title="Indicate how many columns are to be found in the datafile.">bcp_columns()</a>, <a class="el" href="a00288.html#ga244547855b41788fa3a67756956fbc81" title="Set BCP options for uploading a datafile.">bcp_control()</a>, <a class="el" href="a00288.html#ga8b85f79f53a62ac7a728fe626d609b65" title="Conclude the transfer of data from program variables.">bcp_done()</a>, <a class="el" href="a00288.html#ga7a184158b27a50f713e9cfae3b746209" title="Write a datafile to a table.">bcp_exec()</a>, <a class="el" href="a00288.html#gada8e987c4a6225b9276c05ba3a4f47a0" title="Prepare for bulk copy operation on a table.">bcp_init()</a>, bcp_moretext(), <a class="el" href="a00288.html#gafec3feb5bac1cb33545ba01efb0a67b8" title="Set &quot;hints&quot; for uploading a file.">bcp_options()</a> </dd></dl>

</div>
</div>
</div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr class="footer"/><address style="text-align: right;"><small>Generated on Wed Aug 17 22:22:31 2011 for FreeTDS API by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>