bcp_writefmt

创建一个格式化文件,它包含对当前大容量复制数据文件的格式的说明。

语法

RETCODE bcp_writefmt (
        HDBC hdbc,
        LPCTSTR szFormatFile);

参数

  • hdbc
    支持大容量复制的 ODBC 连接句柄。

  • szFormatFile
    接收数据文件格式值的用户文件的路径和文件名。

返回值

SUCCEED 或 FAIL。

注释

格式化文件指定大容量复制所创建的数据文件的数据格式。bcp_columnsbcp_colfmt 调用用于定义数据文件的格式。bcp_writefmtszFormatFile 所引用的文件中保存此定义。有关详细信息,请参阅 bcp_init

有关 bcp 数据格式化文件的结构的详细信息,请参阅使用格式化文件

若要加载已保存的格式化文件,请使用 bcp_readfmt

注意注意

仅在随 SQL Server 7.0 或更高版本分发的 bcp 实用工具版本中支持 bcp_writefmt 生成的格式化文件。

示例

// Variables like henv not specified.
HDBC      hdbc;
DBINT      nRowsProcessed;

// Application initiation, get an ODBC environment handle, allocate the
// hdbc, and so on.
... 

// Enable bulk copy prior to connecting on allocated hdbc.
SQLSetConnectAttr(hdbc, SQL_COPT_SS_BCP, (SQLPOINTER) SQL_BCP_ON,
   SQL_IS_INTEGER);

// Connect to the data source, return on error.
if (!SQL_SUCCEEDED(SQLConnect(hdbc, _T("myDSN"), SQL_NTS,
   _T("myUser"), SQL_NTS, _T("myPwd"), SQL_NTS)))
   {
   // Raise error and return.
   return;
   }

// Initialize bulk copy. 
if (bcp_init(hdbc, _T("myTable"), _T("myData.csv"),
   _T("myErrors"),    DB_OUT) == FAIL)
   {
   // Raise error and return.
   return;
   }

if (bcp_columns(hdbc, 3) == FAIL)
   {
   // Raise error and return.
   return;
   }

bcp_colfmt(hdbc, 1, SQLCHARACTER, 0, SQL_VARLEN_DATA, '\t', 1, 1);
bcp_colfmt(hdbc, 2, SQLCHARACTER, 0, SQL_VARLEN_DATA, '\t', 1, 2);
bcp_colfmt(hdbc, 3, SQLCHARACTER, 0, SQL_VARLEN_DATA, '\t', 1, 3);

if (bcp_writefmt(hdbc, _T("myFmtFile.fmt")) == FAIL)
   {
   // Raise error and return.
   return;
   }

if (bcp_exec(hdbc, &nRowsProcessed) == SUCCEED)
   {
   printf_s("%ld rows copied from SQL Server\n", nRowsProcessed);
   }

// Carry on.

请参阅

参考