如何使用 IRowsetFastLoad (OLE DB) 大容量复制数据

通过将特定于 SQLOLEDB 提供程序的属性 SSPROP_ENABLEFASTLOAD 设置为 VARIANT_TRUE,使用者将其对大容量复制的需要通知 SQLOLEDB。通过在数据源上设置该属性,使用者创建 SQLOLEDB 会话。新会话允许使用者访问 IRowsetFastLoad。

可以参考完整示例,该示例演示了使用 IRowsetFastLoad 将记录大容量复制到表中的过程。在该示例中,将 10 条记录添加到表 IRFLTable 中。您需要在数据库中创建表 IRFLTable

完整示例代码在 BulkCopyRecords.cpp 文件中。您可以从 MSDN 上的 SQL Server Downloads(SQL Server 下载)页下载包含该示例的存档。

该示例是使用 Microsoft Visual C++ 2005 开发的。

安全说明安全说明

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

将数据大容量复制到 SQL Server 表中

  1. 建立与数据源的连接。

  2. 将特定于 SQLOLEDB 提供程序的数据源属性 SSPROP_ENABLEFASTLOAD 设置为 VARIANT_TRUE。通过将该属性设置为 VARIANT_TRUE,新创建的会话将允许使用者访问 IRowsetFastLoad。

  3. 创建请求 IOpenRowset 接口的会话。

  4. 调用 IOpenRowset::OpenRowset 以打开包括表(将使用大容量复制操作复制其中数据)中所有行的行集。

  5. 执行需要的绑定,并使用 IAccessor::CreateAccessor 创建取值函数。

  6. 设置内存缓冲区,用于将数据从其复制到表中。

  7. 调用 IRowsetFastLoad::InsertRow,将数据大容量复制到该表中。