Datasnap.Provider.TResolverErrorEvent
Delphi
TResolverErrorEvent = procedure(Sender: TObject; DataSet: TCustomClientDataSet;
E: EUpdateError; UpdateKind: TUpdateKind; var Response: TResolverResponse) of object;
C++
typedef void __fastcall (__closure *TResolverErrorEvent)(System::TObject* Sender, Datasnap::Dbclient::TCustomClientDataSet* DataSet, Data::Db::EUpdateError* E, Data::Db::TUpdateKind UpdateKind, TResolverResponse &Response);
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
type typedef |
public | Datasnap.Provider.pas Datasnap.Provider.hpp |
Datasnap.Provider | Datasnap.Provider |
説明
プロバイダがレコードを更新できない場合に発生するイベントの手続きの型を表します。
TResolverErrorEvent 型の変数は、エラー状態のためにプロバイダがレコードを更新できない場合に発生するイベントを参照します。
Sender は、更新を現在適用しているプロバイダです。
DataSet は、更新処理中にデータにアクセスするために使用する一時的なクライアント データセットです。このデータセットのフィールド コンポーネントの OldValue プロパティ、NewValue プロパティ、CurValue プロパティを使用すると、変更されたフィールドを確認したり、問題の原因を特定することができます。
警告: このイベント ハンドラでは、現在のレコードを変更するメソッドを呼び出さないでください。
E は EUpdateError オブジェクトで、エラー ハンドラは、このオブジェクトからエラー メッセージとエラー状態の実際の原因を取り出すことができます。この情報は、エラー状態にどう対処するかを決定するのに役立ちます。
UpdateKind は、エラーを発生させた更新の種類を記述します。既存レコードの編集(ukModify)、新規レコードの挿入(ukInsert)、既存レコードの削除(ukDelete)を指定できます。
Response は、OnUpdateError イベントのハンドラが終了するときに実行するアクションを示します。このハンドラに制御が移ったとき、このイベントをトリガする ApplyUpdates 関数に渡された MaxErrors パラメータに基づいて、Response は rrAbort か rrSkip のどちらかに設定されます。MaxErrors が 0 の場合、Response は rrAbort になり、そうでない場合は rrSkip になります。イベント ハンドラでは、エラーを処理または修正できる場合、終了する前に Response を rrApply に設定しなければなりません。