Datasnap.DBClient.TCustomClientDataSet.Filter
Delphi
property Filter;
C++
__property Filter = {default=0};
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
property | protected | Datasnap.DBClient.pas Datasnap.DBClient.hpp |
Datasnap.DBClient | TCustomClientDataSet |
説明
データセットの現在のフィルタのテキストを示します。
Datasnap.DBClient.TCustomClientDataSet.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
filter 句では、複合式を使用することもできます。次の例では、フランを通貨として使用する Country 値を含む行を抽出します。
Country IN (SELECT Country from Country where Currency = '_Franc')
- Data.DB.TDataSet では、次のフィルタ条件は、State フィールドが 'CA' または 'MA' であるレコードのみが表示されます:
State = 'CA' or State = 'MA'
次の実行時例では、そのフィルタ式を Data.DB.TDataSet.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 プロパティを設定すると、例外が発生します。
FilterOptions プロパティは、大文字/小文字の区別や、部分比較についてのフィルタリングを制御します。
ヒント: アプリケーションは、実行時に Filter を設定して、データセットのフィルタリング条件を変更することができます(たとえば、ユーザーの入力に応じて変更するなど)。
関連項目
- Data.DB.TDataSet.Filtered
- Data.DB.TDataSet.FilterOptions
- Data.DB.TDataSet.OnFilterRecord
- Data.DB.TDataSet.Locate
- Data.DB.TDataSet.Lookup
- フィルタの作成
- フィルタが設定されたデータセット内のレコード間の移動
- プロパティ値の設定
- フィルタを使用してデータのサブセットを表示および編集する