Data.Win.ADODB.TCustomADODataSet.Filter
Delphi
property Filter: string read FFilterText write SetFilterText default 0;
C++
__property Filter = {default=0};
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
property | published | Data.Win.ADODB.pas Data.Win.ADODB.hpp |
Data.Win.ADODB | TCustomADODataSet |
説明
データセットに対する現在のフィルタのテキストを示します。
Data.Win.ADODB.TCustomADODataSet.Filter は Data.DB.TDataSet.Filter を継承しています。以下の内容はすべて Data.DB.TDataSet.Filter を参照しています。
データセットに対する現在のフィルタのテキストを示します。
Filter を使用すると、データセット フィルタを指定できます。 データセットにフィルタを適用すると、フィルタの条件に一致するレコードだけをアプリケーションで使用できます。 Filter は、フィルタ条件を表します。
例:
- IBX.IBTable.TIBTable の場合、Country フィールドの値に 'France' または 'Fiji' が含まれているレコードのみを表示させるには:
Country = 'France' or Country = 'Fiji'
LIKE 演算子を使用する際には、パーセント(%)や下線(_)などの、標準 SQL ワイルドカードを使用することができます。次のフィルタ条件では、'F' で始まるすべての国を取得します:
Country LIKE 'F%'
Country 列は NULL 値で、Contact_Name は NULL ではない行を表示させる、といった場合には、IS オペレータを使用します:
Country is NULL and Contact_Name is not NULL
またフィルタ句では、複合式も使用することができます。次の例では、フランを貨幣として使用する Country 値の行を取得します:
Country IN (SELECT Country from Country where Currency = '_Franc')
- Data.DB.TDataSet の場合、次のフィルタ条件は、State フィールドが 'CA' または 'MA' であるレコードのみを表示します:
State = 'CA' or State = 'MA'
次の実行時例では、フィルタ式をどのように Data.Win.ADODB.TCustomADODataSet.Filter プロパティに割り当て、フィルタをアクティブにするかを示しています。
with ADODataSet1 do begin
Filtered := False;
Filter := 'State = ' + QuotedStr('CA') + ' OR ' +
'State = ' + QuotedStr('CA');
Filtered := True;
end;
ADODataSet1->Filtered = false;
ADODataSet1->Filter = "State = " + QuotedStr("CA") + " OR " + "State = " + QuotedStr("CA");
ADODataSet1->Filtered = true;
フィルタが設定されている場合、空レコードは、フィルタに明示的に含まれない限り現れません。 例:
State <> 'CA' or State = NULL
例:
with ADODataSet1 do begin
Filtered := False;
Filter := 'State = ' + QuotedStr('CA') + ' OR ' +
'State = NULL';
Filtered := True;
end;
ADODataSet1->Filtered = false;
ADODataSet1->Filter = "State = " + QuotedStr("CA") + " OR " + "State = NULL";
ADODataSet1->Filtered = true;
フィルタ名にスペースが含まれている場合、フィルタ名を括弧で囲む必要があります。 例:
[Home State] = 'CA' or [Home State] = 'MA'
リモート SQL テーブル、および、クライアント データセットに対する Filter 式は、フィールド比較をサポートします。 例:
Field1 > Field2
ローカル テーブル(Paradox、dBASE、Access、FoxPro)に対しては、フィールド比較はサポートされていません。
フィルタ文字列で使用可能な演算子の全一覧については、「Filter プロパティの設定」を参照してください。
メモ: Filter は単方向データセットに対してはサポートされていません。単方向データセットの Filter プロパティを設定すると、例外が発生します。
FilterOptions プロパティは、大文字/小文字の区別や、部分比較のフィルタリングについて制御します。
ヒント: アプリケーションは、実行時に Filter を設定して、データセットのフィルタ条件を変更することができます(たとえば、ユーザーの入力に応じてなど)。