UpdateBatch メソッド

未処理のバッチ更新をすべてディスクに書き込みます。

構文

recordset.UpdateBatch AffectRecords

UpdateBatch メソッドの構文には、次の指定項目があります。

指定項目

説明

recordset

開いている Recordset オブジェクトを表すオブジェクト変数です。

AffectRecords

(省略可能) UpdateBatch メソッドの作用を受けるレコード数を決める AffectEnum 値です。次の定数のうちの 1 つを指定できます。

adAffectCurrent、1 カレント レコードの未処理の変更だけを書き込みます。

adAffectGroup、2 現在の Filter プロパティの設定を満たすレコードの未処理の更新を書き込みます。このオプションを使用するには、有効な定義済み定数のうちの 1 つを Filter プロパティに設定する必要があります。

adAffectAll、3 (デフォルト) 現在の Filter プロパティの設定により隠されているものも含む、Recordset オブジェクト内のすべてのレコードの未処理の更新を書き込みます。

解説

UpdateBatch は、バッチ更新モードにおいて Recordset オブジェクトを変更するときに、Recordset オブジェクトに加えられたすべての変更をデータ元のデータベースに転送するために使います。

Recordset オブジェクトがバッチ更新をサポートしている場合は、1 つ以上のレコードに加えられた変更をローカルに蓄積しておいてから、UpdateBatch メソッドを呼び出すことができます。カレント レコードの編集中、または新しいレコードの追加中に UpdateBatch を呼び出した場合には、ADO は自動的に Update メソッドを呼び出して未処理の変更をカレント レコードに保存してから、変更をプロバイダに一括転送します。

注意 バッチ更新はキーセット カーソルか静的カーソルのどちらかでのみ行ってください。

元になっているデータと競合するために変更の転送ができない場合 (たとえば別のユーザーが既にレコードを削除している場合など)、プロバイダは Errors コレクションに警告を返しますが、プログラムの実行を中断することはありません。ランタイム エラーは、要求されたレコードすべてが競合を起こした場合にだけ起こります。競合を起こしたレコードを探すには、Filter プロパティ (adFilterAffectedRecords) および Status プロパティを使います。

未処理のバッチ更新をすべてキャンセルするには、CancelBatch メソッドを使います。

対象

Recordset

関連項目

CancelBatchClearLockType