次の方法で共有


UpdateBatch メソッド

保留中のすべてのバッチ更新をディスクに書き込みます。

構文

  
recordset.UpdateBatch AffectRecords, PreserveStatus  

パラメーター

AffectRecords
任意。 UpdateBatch メソッドが影響するレコードの数を示す AffectEnum 値。

PreserveStatus
任意。 Status プロパティで示されているように、ローカルの変更をコミットするかどうかを指定するブール値。 この値が True に設定されている場合、更新が完了した後、各レコードの Status プロパティは変更されません。

注釈

Recordset オブジェクトで行われたすべての変更を基になるデータベースに送信するには、バッチ更新モードで Recordset オブジェクトを変更するときに UpdateBatch メソッドを使用します。

Recordset オブジェクトでバッチ更新がサポートされている場合は、UpdateBatch メソッドを呼び出すまで、1 つ以上のレコードに対する複数の変更をローカルにキャッシュできます。 UpdateBatch メソッドを呼び出すときに現在のレコードを編集する場合、または新しいレコードを追加する場合、ADO は、Update メソッドを自動的に呼び出して、保留中の変更を現在のレコードに保存してから、バッチ処理された変更をプロバイダーに送信します。 バッチ更新は、キーセットまたは静的カーソルのみで使用する必要があります。

このパラメーターの値として adAffectGroup を指定すると、現在の Recordset に表示されるレコードがない場合 (レコードが一致しないフィルターなど) にエラーが発生します。

基になるデータとの競合 (たとえば、レコードが別のユーザーによって既に削除されている) が原因で、変更の送信が失敗した場合、プロバイダーは Errors コレクションに警告を返し、実行時エラーが発生します。 Filter プロパティ (adFilterAffectedRecords) と Status プロパティを使用して、競合するレコードを検索します。

保留中のすべてのバッチ更新を取り消すには、 CancelBatch メソッドを使用します。

Unique TableUpdate Resync の動的プロパティが設定されていて、Recordset が複数のテーブルで JOIN 操作を実行した結果である場合、UpdateBatch メソッドの実行は、Update Resync プロパティの設定に応じて、暗黙的に Resync メソッドの後に続きます。

バッチの個々の更新がデータ ソースに対して実行される順序は、ローカル Recordset で実行された順序と必ずしも同じではありません。 更新順序はプロバイダーによって異なります。 挿入または更新に対する外部キー制約など、相互に関連する更新をコーディングする場合は、これを考慮してください。

適用対象

Recordset オブジェクト (ADO)

こちらもご覧ください

UpdateBatch メソッドと CancelBatch メソッドの使用例 (VB)
UpdateBatch メソッドと CancelBatch メソッドの使用例 (VC++)
CancelBatch メソッド (ADO)
Clear メソッド (ADO)
LockType プロパティ (ADO)
Update メソッドの