bcp_writefmt
适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics 平台系统(PDW)
创建一个格式化文件,它包含对当前大容量复制数据文件的格式的说明。
语法
RETCODE bcp_writefmt (
HDBC hdbc,
LPCTSTR szFormatFile);
参数
hdbc
已启用大容量复制的 ODBC 连接句柄。
szFormatFile
接收数据文件格式值的用户文件的路径和文件名。
返回
SUCCEED 或 FAIL。
注解
格式化文件指定大容量复制所创建的数据文件的数据格式。 调用 bcp_columns 并 bcp_colfmt 定义数据文件的格式。 bcp_writefmt将此定义保存在 szFormatFile 引用的文件中。 有关详细信息,请参阅 bcp_init。
有关 bcp 数据格式化文件结构的详细信息,请参阅使用 bcp 实用工具(SQL Server)导入和导出大容量数据。
若要加载保存的格式化文件,请使用 bcp_readfmt。
注意
bcp_writefmt生成的格式化文件仅受 SQL Server 版本 7.0 及更高版本分发的 bcp 实用工具版本支持。
示例
// 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.