UpdateBatch メソッド

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

構文

  
recordset.UpdateBatch AffectRecords, PreserveStatus  

パラメーター

AffectRecords
省略可能。 UpdateBatch メソッドが影響を与えるレコードの数を示す AffectEnum 値。

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

注釈

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

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

注意

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

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

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

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

データ ソースで行なわれるバッチの個々の更新の順序は、ローカルのレコードセットで行なわれた順序と同じとは限りません。 更新順序はプロバイダーによって異なります。 挿入や更新の際の外部キー制約など、互いに関連する更新をコーディングする場合は、この点を考慮に入れてください。

適用対象

Recordset オブジェクト (ADO)

参照

UpdateBatch および CancelBatch メソッドの例 (VB)
UpdateBatch および CancelBatch メソッドの例 (VC++)
CancelBatch メソッド (ADO)
Clear メソッド (ADO)
LockType プロパティ (ADO)
Update メソッド