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