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 に設定するとエラーは 1 つの許容されないことを示します。

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

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

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

例:

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

関連項目

サンプル