Datasnap.DBClient.TCustomClientDataSet.ApplyUpdates
Delphi
function ApplyUpdates(MaxErrors: Integer): Integer; virtual;
C++
virtual int __fastcall ApplyUpdates(int MaxErrors);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | Datasnap.DBClient.pas Datasnap.DBClient.hpp |
Datasnap.DBClient | TCustomClientDataSet |
説明
クライアント データセットに対して更新、挿入、削除のいずれかが行われたレコードをすべてプロバイダに送信して、データベースに書き込ませます。
ApplyUpdates を呼び出すと、クライアント データセットに対して更新、挿入、削除のいずれかが行われたレコードをすべてデータベースまたはソース データセットに書き込むことができます。MaxErrors は、プロバイダにより更新操作が中断されるまでに許容されるエラーの最大数を指定します。MaxErrors を -1 に設定すると、エラーの数が無制限であると指定することになります。
1. BeforeApplyUpdates イベントを発生させます(このイベントは TCustomClientDataSet の一部の下位クラスではパブリックでない場合があります)。
2. プロバイダを呼び出して、Delta プロパティに格納されている更新を適用させます。データベースに適用しようとしてエラーが発生したためプロバイダからレコードを返された場合は、それらを受け取ります。
3. AfterApplyUpdates イベントを発生させます(このイベントは TCustomClientDataSet の一部の下位クラスではパブリックでない場合があります)。
4. クライアント データセットの Reconcile メソッドを呼び出して、ステップ 2 で返されたレコードをすべて調停します。
警告: 更新がメモ フィールドに対する別のユーザーによる変更と競合する場合、プロバイダはそれを検出できません。サーバーは、これらの競合をエラーとして検出して返すことはありません。
ApplyUpdates は、発生したエラーの数を返します。この戻り値と MaxErrors の設定に基づいて、正常に適用されたレコードがクライアント データセットの変更ログから削除されます。更新がすべて適用される前に更新処理が中止された場合、適用されていない更新は変更ログにそのまま残ります。