IRowsetFastLoad::InsertRow (Native Client OLE DB Provider)
適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)
重要
SQL Server Native Client (通常縮寫為 SNAC) 已從 SQL Server 2022 (16.x) 和 SQL Server Management Studio 19 (SSMS) 中移除。 不建議使用 SQL Server Native Client OLE DB 提供者 (SQLNCLI 或 SQLNCLI11) 和舊版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB) 進行新的開發。 請切換至新的 Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server 以繼續使用。
將資料列加入至大量複製資料列集。 如需範例,請參閱使用 IRowsetFastLoad 大量複製資料 (OLE DB) 和使用 IROWSETFASTLOAD 和 ISEQUENTIALSTREAM 將 BLOB 資料傳送到 SQL SERVER (OLE DB)。
語法
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 提供者不會公開允許取用者查詢數據列集的方法。 若要終止處理,取用者可以不必呼叫 Commit 方法,即釋放它在 IRowsetFastLoad 介面上的參考。 沒有功能可用來存取資料列集中取用者插入的資料列並變更其值,或將該資料列從資料列集個別地移除。
大量複製的資料列會在伺服器上針對 SQL Server 設定格式。 資料列格式會受到已針對連接或工作階段所設定之任何選項 (例如 ANSI_PADDING) 的影響。 此選項預設會針對透過 SQL Server Native Client OLE DB 提供者進行的任何連線設定為開啟。