次の方法で共有


IRowsetFastLoad::InsertRow (OLE DB)

一括コピー行セットに行を追加します。 サンプルについては、「 IRowsetFastLoad (OLE DB) を使用してデータを一括コピーする」 と「 IROWSETFASTLOAD と ISEQUENTIALSTREAM (OLE DB) を使用して SQL SERVER に BLOB データを送信する」を参照してください。

構文

  
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は、要求を完了するのに十分なメモリを割り当てることができませんでした。

予期しないエラー
このメソッドは、以前 に 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 プロバイダーを介して行われるすべての接続に対して、既定でオンに設定されます。

こちらもご覧ください

IRowsetFastLoad (OLE DB)