IRowsetFastLoad::Commit (OLE DB)
挿入される行のバッチの終わりをマークし、挿入された行を SQL Server のテーブルに書き込みます。 サンプルについては、「IRowsetFastLoad を使用したデータの一括コピー (OLE DB)」と「IROWSETFASTLOAD と ISEQUENTIALSTREAM を使用した SQL SERVER への BLOB データの送信 (OLE DB)」を参照してください。
構文
HRESULT Commit(
BOOL
fDone
);
引数
fDone[in]
FALSE の場合、行セットは有効なまま保持され、コンシューマーはこの行セットを使用してさらに行を挿入できます。 TRUE の場合、行セットは無効になり、コンシューマーはこれ以上行を挿入できません。
リターン コードの値
S_OK
メソッドが成功し、挿入されたすべてのデータが SQL Server テーブルに書き込まれました。
E_FAIL
プロバイダー固有のエラーが発生しました。 特定のエラー テキストのエラー情報をプロバイダーから取得してください。
E_UNEXPECTED
既に IRowsetFastLoad::Commit メソッドによって無効になっている一括コピー行セットに対して呼び出されました。
解説
OLE DB プロバイダーの一括コピー行セットSQL Server Native Clientは、遅延更新モードの行セットとして動作します。 ユーザーが行セットを使用して行データを挿入すると、挿入された行は、IRowsetUpdate をサポートする行セットでの保留中の挿入と同様の形式で扱われます。
コンシューマーは、IRowsetUpdate::Update メソッドを使用して保留中の行を SQL Server のインスタンスに送信するのと同様に、一括コピー行セットに対して Commit メソッドを呼び出して、挿入された行を SQL Server テーブルに書き込む必要があります。
コンシューマーが Commit メソッドを呼び出さないで一括コピー行セットの参照を解放すると、挿入されてもそれ以前に書き込まれていない行はすべて失われます。
コンシューマーは、fDone 引数を FALSE に設定して Commit メソッドを呼び出すことにより、挿入される行をバッチ処理できます。 fDone を TRUE に設定すると、その行セットは無効になります。 無効な一括コピー行セットでは、ISupportErrorInfo インターフェイスと IRowsetFastLoad::Release メソッドのみがサポートされます。