フィルタを使用したデータのサブセットの表示と編集
データセットの理解:インデックス への移動
データセットのレコードのうち、アプリケーションの操作対象になるものは、多くの場合、一部だけです。 たとえば、顧客データベースから、カリフォルニアを拠点とする企業のレコードだけを取得または表示する場合や、フィールド値の特定の集合を含んでいるレコードを検索する場合などです。 このような場合、フィルタを使用すると、データセット内の一部のレコードにのみアプリケーションからアクセスするように制限できます。
単方向データセットの場合、データセット内のレコードを制限するには、データセット内のレコードを限定するクエリを使用するしかありません。一方、TDataSet の他の下位クラス オブジェクトの場合は、取得済みのデータのサブセットを定義できます。アプリケーションからアクセスするレコードをデータセット内の一部のレコードに限定するには、フィルタを使用することができます。
フィルタでは、レコードが表示されるための条件を指定します。フィルタ条件は、データセットの Filter プロパティで指定することも、Data.DB.TDataSet.OnFilterRecord イベントのハンドラに記述することもできます。フィルタ条件は、フィールドにインデックスが付いているかどうかに関係なく、データセット内の指定した数のフィールドの値に基づいて設定されます。たとえば、カリフォルニアを拠点とする企業のレコードだけを表示するのに、単純なフィルタであれば、レコードの State フィールドの値が "CA" であることを条件とするかもしれません。
メモ: フィルタは、データセットからレコードを取得するたびに適用されます。大量のデータをフィルタリングする場合は、レコードの取得を制限するクエリを使用するか、インデックス付きテーブルに範囲を設定する方が、フィルタを使用するよりも効率的である可能性があります。