Data.Win.ADODB.TCustomADODataSet.Filter

提供: RAD Studio API Documentation
移動先: 案内検索

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 を設定して、データセットのフィルタ条件を変更することができます(たとえば、ユーザーの入力に応じてなど)。

関連項目