FireDAC.Comp.DataSet.TFDDataSet.ApplyUpdates
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 を使用すると、データセット変更ジャーナルに記載されたすべてのレコードの変更内容をデータベースに適用できます。 このメソッドは、CachedUpdates が True の場合に役に立ちます。ApplyUpdates 呼び出しは、次の手順を実行します:
- BeforeApplyUpdates イベントを発生させます。
- データ アダプタを呼び出して、各行に対して SQL 更新コマンドを生成または使用し、変更をデータベースに送信。
- AfterApplyUpdates イベントを発生させます。
- データセットの Reconcile メソッドを呼び出して、ステップ 2 でエラーが発生したレコードをすべて調停します。
- エラーがなければ、TFDCustomMemTable 下位クラスの CommitUpdates を呼び出します。TFDRdbmsDataSet 下位クラス(TFDQuery、TFDStoredProc、TFDTable など)の場合は、アプリケーションで Reconcile と CommitUpdates を明示的に呼び出されなければなりません。
AMaxErrors
は、FireDAC により更新操作が中断されるまでに許容されるエラーの最大数を指定します。 AMaxErrors
を –1 に設定すると、エラー数に制限はないことを示し、0 に設定するとエラーは 1 つの許容されないことを示します。
ApplyUpdates は、遭遇したエラーの数を返します。 この戻り値と AMaxErrors
の設定に基づいて、正常に適用されたレコードがデータセットの変更ログから削除されます。更新がすべて適用される前に更新処理が中止された場合、適用されていない更新は変更ログにそのまま残ります。
ApplyUpdates は、例外を発生させません。 代わりに、アプリケーションはイベント ハンドラ Reconcile や OnReconcileError、または、プロパティ FilterChanges や RowError を使用して、エラーのあるレコードをレビューしなければなりません。詳細については、「更新のキャッシュ」の「エラーのレビュー」を参照してください。
変更はすべて、データセットの変更順に適用されます。最初の変更(挿入 / 更新 / 削除)が最初に適用され、最後の変更が最後に適用されます。
例:
procedure TForm1.btnApplyClick(ASender: TObject);
begin
if FDStoredProc1.UpdatesPending then
FDStoredProc1.ApplyUpdates;
end;
関連項目
- 更新のキャッシュ
- FireDAC.Comp.DataSet.TFDDataSet.CachedUpdates
- FireDAC.Comp.DataSet.TFDDataSet.CancelUpdates
- FireDAC.Comp.DataSet.TFDDataSet.CommitUpdates
- FireDAC.Comp.DataSet.TFDDataSet.RowError
- FireDAC.Comp.DataSet.TFDDataSet.FilterChanges