如何创建大容量复制格式化文件 (ODBC)

本文提供了一个完整的示例,演示如何使用大容量复制功能来创建数据文件和格式化文件。完整的示例代码见文件 BulkCopyWithFormat.cpp,您可以从 MSDN 上的 SQL Server Downloads(SQL Server 下载)页下载该文件。此示例是使用 Microsoft Visual C++ 2005 开发的,并且是针对 ODBC 版本 3.0 或更高版本开发的。

安全说明安全说明

请尽可能使用 Windows 身份验证。如果 Windows 身份验证不可用,请在运行时提示用户输入其凭据。不要将凭据存储在一个文件中。如果必须保存凭据,则应当用 Win32 crypto API(Win32 加密 API)进行加密。

创建大容量复制格式化文件

  1. 分配环境句柄和连接句柄。

  2. 设置 SQL_COPT_SS_BCP 和 SQL_BCP_ON 以启用大容量复制操作。

  3. 连接到 SQL Server。

  4. 调用 bcp_init 以设置以下信息:

    • 作为大容量复制的源或目标的表或视图的名称。

    • 包含要复制到数据库中的数据的数据文件的名称,或者当从数据库中复制时接收数据的数据文件的名称。

    • 接收任何大容量复制错误消息的数据文件的名称(如果不需要消息文件,请指定 NULL)。

    • 复制方向:DB_OUT 表示从表或视图复制到文件。

  5. 调用 bcp_columns 设置列数。

  6. 对每一列调用 bcp_colfmt,在数据文件中定义该列的特征。

  7. 调用 bcp_writefmt 创建格式化文件,用以描述通过大容量复制操作创建的数据文件。

  8. 调用 bcp_exec 以执行大容量复制操作。

按此方式运行的大容量复制操作将创建一个包含大容量复制数据的数据文件,以及一个描述该数据文件布局的格式化文件。