API:SimpleDS.TSimpleDataSet.OnFilterRecord
Delphi
property OnFilterRecord: TFilterRecordEvent read FOnFilterRecord write SetOnFilterRecord;
C++
__property OnFilterRecord;
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
event | published | SimpleDS.pas SimpleDS.hpp |
SimpleDS | TSimpleDataSet |
説明
DB からレコードが取得されたとき、または Filtered プロパティが True に設定されたときにのみ、発生します。
SimpleDS.TSimpleDataSet.OnFilterRecord は Data.DB.TDataSet.OnFilterRecord を継承しています。以下の内容はすべて Data.DB.TDataSet.OnFilterRecord を参照しています。
DB からレコードが取得されたとき、または Filtered プロパティが True に設定されたときにのみ、発生します。
OnFilterRecord イベント ハンドラを記述すると、データセット内のレコードごとに、そのレコードをアプリケーションに見せるかどうかを指定することができます。レコードがフィルタ条件を満たしていることを示すには、OnFilterRecord イベント ハンドラで Accept パラメータを true に設定する必要があります。レコードを除外するには、Accept パラメータを false に設定します。TDataSet のほとんどの下位クラス(ADO データセットなど)では、OnFilterRecord イベント ハンドラの呼び出し前に Accept が true に初期化されます。
警告: 単方向データセットには OnFilterRecord イベント ハンドラを指定しないでください。単方向データセットではフィルタをサポートしていないため、OnFilterRecord イベント ハンドラを割り当てると、データセットで例外が発生する原因となります。
フィルタ処理は、Filtered プロパティが true のときに有効になります。アプリケーションがフィルタを処理している間、データセットの State プロパティは dsFilter になります。
OnFilterRecord イベント ハンドラを使用すると、Filter プロパティを使っては実装できない条件によってレコードを選別することができます。たとえば Filter プロパティを使用してフィールドとローカル テーブル(Paradox、dBASE、Access、FoxPro)とを比較することはできませんが、OnFilterRecord イベント ハンドラではどのような条件でも実装することができます。
ヒント: 1 つのアプリケーションで Filter プロパティと OnFilterRecord イベント ハンドラを同時に使用する場合、両者間のやり取りの結果としてフィルタ セットが空にならないよう注意してください。
OnFilterRecord は、Data.DB.TFilterRecordEvent 型のイベント ハンドラです。