将行添加到大容量复制行集。 有关示例,请参阅 使用 IRowsetFastLoad(OLE DB)批量复制数据 , 并使用 IROWSETFASTLOAD 和 ISEQUENTIALSTREAM (OLE DB)将 BLOB 数据发送到 SQL SERVER。
语法
HRESULT InsertRow(
HACCESSOR
hAccessor
,
void*
pData
);
论据
hAccessor[in]
定义大容量复制行数据的访问器的句柄。 引用的访问器是行访问器,绑定包含数据值的使用者拥有的内存。
pData[in]
指向包含数据值的使用者拥有的内存的指针。 有关详细信息,请参阅 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 访问接口不公开允许使用者查询行集的方法。 若要终止处理,使用者可以在 IRowsetFastLoad 接口上释放其引用,而无需调用 Commit 方法。 没有用于访问行集中使用者插入的行和更改其值或从行集中单独删除它的设施。
大容量复制的行在 SQL Server 的服务器上格式化。 行格式受可能已为连接或会话设置的任何选项(如ANSI_PADDING)的影响。 对于通过 SQL Server Native Client OLE DB 访问接口进行的任何连接,此选项默认处于打开状态。