FireDAC.Comp.DataSet.TFDDataSet.ApplyUpdates

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

function ApplyUpdates(AMaxErrors: Integer = -1): Integer;

C++

int __fastcall ApplyUpdates(int AMaxErrors = 0xffffffff);

プロパティ

種類 可視性 ソース ユニット
function public
FireDAC.Comp.DataSet.pas
FireDAC.Comp.DataSet.hpp
FireDAC.Comp.DataSet TFDDataSet

説明

データセット変更ログに記載されたすべてのレコードの変更内容をデータベースに適用します。


ApplyUpdates を使用すると、データセット変更ジャーナルに記載されたすべてのレコードの変更内容をデータベースに適用できます。このメソッドは、CachedUpdatesTrue の場合に役に立ちます。ApplyUpdates を呼び出すと、以下の手順が実行されます。

  • BeforeApplyUpdates イベントを発生させます。
  • データ アダプタを呼び出して、行ごとに SQL 更新コマンドを生成/使用し変更内容をデータベースにポストします。
  • AfterApplyUpdates イベントを発生させます。
  • データセットの Reconcile メソッドを呼び出して、ステップ 2 でエラーが発生したレコードをすべて調停します。
  • エラーがなければ、TFDCustomMemTable 下位クラスの CommitUpdates を呼び出します。TFDRdbmsDataSet 下位クラス(TFDQueryTFDStoredProcTFDTable など)の場合は、アプリケーションで ReconcileCommitUpdates を明示的に呼び出さなければなりません。

AMaxErrors は、FireDAC により更新操作が中断されるまでに許容されるエラーの最大数を指定します。AMaxErrors を –1 に設定すると、エラー数の上限がないことを示し、0 に設定すると、エラーが許容されないことを示します。

ApplyUpdates は、発生したエラーの数を返します。この戻り値と AMaxErrors の設定に基づいて、正常に適用されたレコードがデータセットの変更ログから削除されます。更新がすべて適用される前に更新処理が中止された場合、適用されていない更新はすべて変更ログにそのまま残ります。

ApplyUpdates は例外を発生させません。その代わり、アプリケーションで ReconcileOnReconcileError イベント ハンドラまたは FilterChanges プロパティおよび RowError プロパティを使って、誤りのあるレコードをレビューしなければなりません。詳細については、「更新のキャッシング」の「エラーのレビュー」を参照してください。

変更はすべて、データセットの変更順に適用されます。最初の変更(挿入/更新/削除)が最初に適用され、最後の変更が最後に適用されます。

 procedure TForm1.btnApplyClick(ASender: TObject);
 begin
   if FDStoredProc1.UpdatesPending then
     FDStoredProc1.ApplyUpdates;
 end;

関連項目