Bde.DBTables.TDatabase.ApplyUpdates
Delphi
procedure ApplyUpdates(const DataSets: array of TDBDataSet);
C++
void __fastcall ApplyUpdates(TDBDataSet* const *DataSets, const int DataSets_High);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
procedure function |
public | Bde.DBTables.pas Bde.DBTables.hpp |
Bde.DBTables | TDatabase |
説明
指定したデータセット内の未処理のキャッシュアップデートをデータベースサーバーに登録します。
ApplyUpdates メソッドは,開いているデータセットの指定したセットの未処理のキャッシュアップデートをデータベースサーバーに登録します。ApplyUpdates は指定したデータセットの CachedUpdates プロパティが true の場合にのみ内容があります。
DataSets は,どのデータセットの未処理のキャッシュアップデートを登録するかを指定するデータセット名のリストです。DataSets は現在開いているすべてのデータセットをリストする必要はありません。リストされている各データセットに対して ApplyUpdates はデータセットの ApplyUpdates と CommitUpdates メソッドを呼び出して,そのデータセットの未処理のキャッシュアップデートを登録します。
アップデートの適用は,データベースコンポーネントのトランザクションコントロールのコンテキストで発生する 2 段階の処理で行われます。アプリケーションが ApplyUpdates を呼び出すと,以下のイベントが発生します。
- データベーストランザクションが開始される
- キャッシュアップデートがデータベースに書き込まれる(第 1 段階)
データベースへの書き込みが正常に行われた場合は,以下の処理が行われます。
- Database の変更がコミットされ,トランザクションが終了する
- CachedUpdates がコミットされ,内部キャッシュバッファが解放される(第 2 段階)
データベースへの書き込みが正常に行われなかった場合は,データベースの変更がロールバックされてトランザクションが終了します。
このような 2 段階での処理により,特に,複数の相互に関連しているデータセット(たとえば,マスター/詳細フォームと関連付けられているデータセットなど)を更新する場合に,エラーの回復を効率的に行えます。