IRowsetFastLoad::InsertRow (OLE DB)

将行添加到大容量复制行集中。

语法

HRESULT InsertRow(
      HACCESSOR hAccessor,
      void* pData);

参数

  • hAccessor[in]
    定义大容量复制的行数据的取值函数句柄。引用的取值函数为行取值函数,将绑定包含数据值的使用者拥有的内存。

  • pData[in]
    指向包含数据值的使用者所拥有内存的指针。有关详细信息,请参阅 DBBINDING Structures(DBBINDING 结构)。

返回代码值

  • S_OK
    方法成功。所有列的任何绑定状态值都具有值 DBSTATUS_S_OK 或 DBSTATUS_S_NULL。

  • E_FAIL
    出现了错误。从行集的错误接口中发出错误信息。

  • E_INVALIDARG
    pData 参数设置为 NULL 指针。

  • E_OUTOFMEMORY
    SQLNCLI10 无法分配足够的内存来完成请求。

  • E_UNEXPECTED
    对以前被 IRowsetFastLoad::Commit 方法作废的大容量复制行集调用了该方法。

  • DB_E_BADACCESSORHANDLE
    使用者提供的 hAccessor 参数无效。

  • DB_E_BADACCESSORTYPE
    指定的取值函数不是行取值函数,或者未指定使用者拥有的内存。

注释

将使用者数据转换为列的 SQL Server 数据类型时出错会导致从 SQL Server Native Client OLE DB 访问接口返回 E_FAIL。可以通过任何 InsertRow 方法或只通过 Commit 方法将数据传输到 SQL Server。在使用者应用程序收到存在数据类型转换错误的通知之前,它可以用错误数据多次调用 InsertRow 方法。因为 Commit 方法可确保使用者正确指定所有数据,所以使用者可在必要时使用 Commit 方法适当地验证数据。

SQL Server Native Client OLE DB 访问接口大容量复制行集为只写。SQL Server Native Client OLE DB 访问接口显示不存在允许行集使用者查询的方法。若要终止处理,使用者可以在不调用 Commit 方法的情况下释放其对 IRowsetFastLoad 接口的引用。没有用于进行以下操作的设备:访问行集中使用者插入的行、更改其值或从行集中逐一删除该行。

大容量复制行在 SQL Server 的服务器上进行了格式化。可能已针对连接或会话(例如 ANSI_PADDING)设置的任何选项均会影响行格式。默认情况下,对于通过 SQL Server Native Client OLE DB 访问接口建立的任何连接,此选项均设置为启用。

请参阅

其他资源