IRowsetFastLoad::InsertRow (OLE DB)
将行添加到大容量复制行集中。 相关示例请参阅使用 IRowsetFastLoad (OLE DB) 大容量复制数据 和使用 IROWSETFASTLOAD 和 ISEQUENTIALSTREAM 将 BLOB 数据发送到 SQL SERVER (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
SQLNCLI11 无法分配足够的内存来完成请求。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 访问接口建立的任何连接,此选项均设置为启用。