bcp_writefmt
创建一个格式化文件,它包含对当前大容量复制数据文件的格式的说明。
语法
RETCODE bcp_writefmt (
HDBC hdbc,
LPCTSTR szFormatFile);
参数
hdbc
支持大容量复制的 ODBC 连接句柄。szFormatFile
接收数据文件格式值的用户文件的路径和文件名。
返回值
SUCCEED 或 FAIL。
注释
格式化文件指定大容量复制所创建的数据文件的数据格式。bcp_columns 和 bcp_colfmt 调用用于定义数据文件的格式。bcp_writefmt 在 szFormatFile 所引用的文件中保存此定义。有关详细信息,请参阅 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.