範囲とフィルタの違いについて
データセットについて:インデックス への移動
範囲もフィルタも,一部のレコードだけ表示する点では同じですが,その方法が異なります。範囲では,指定した 2 つの境界値の間にあるすべてのインデックス付きレコードが取り出されます。たとえば,名前にインデックスが付いた社員データベースで,名前が「Jones」より大きく「Smith」より小さいすべての社員を表示する場合に,範囲を適用できます。範囲はインデックスに依存するため,範囲の定義に使用できるインデックスを現在のインデックスに設定する必要があります。レコードのソートのためにインデックスを指定する場合と同様に,IndexName または IndexFieldNames プロパティを使って範囲を設定するインデックスを割り当てることができます。
フィルタでは,インデックスが付いているかどうかに関係なく,指定した条件を満たす連続または非連続のレコードが取り出されます。たとえば,社員データベースにフィルタを使用すると,カリフォルニア在住で勤続 5 年以上のすべての社員を表示できます。フィルタはインデックスが付いていればそれを使用しますが,フィルタはインデックスには依存しません。アプリケーションがデータセット内をスクロールする場合,フィルタは各レコードに適用されます。
一般に,範囲よりフィルタの方が柔軟な使い方ができます。しかしデータセットが大きくて,アプリケーションが必要とするレコードが連続的にインデックス付けされたグループにブロック化されている場合は,範囲の方が効率的です。非常に大きなデータセットでは,表示や編集のために,問い合わせタイプのデータセットの WHERE 句を使ってデータを選択するとさらに効果的です。問い合わせを指定する方法の詳細は,「問い合わせタイプのデータセットの使い方」を参照してください。