インデックスを使用したレコードの検索
クエリ タイプのデータセットの使用 への移動
TDataSet の Locate メソッドと Lookup メソッドを使って、任意のデータセットに対して検索を行うことができます。ただし、一部のテーブルタイプ データセットでは、明示的にインデックスを使用することにより、Locate メソッドと Lookup メソッドを使用する場合の検索パフォーマンスを向上させることができます。
ADO データセットはすべてSeek メソッドをサポートしています。これは、現在のインデックスを構成するフィールドの値の集合に基づいて、特定のレコードに移動するためのものです。Seek では、最初または最後に一致したレコードを基準にして、そこからカーソルをどこに移動するかを指定できます。
TTable およびすべての種類のクライアント データセットでは、同様のインデックス ベースの検索をサポートしていますが、関連するメソッドの組み合せを使用します。TTable とクライアント データセットでインデックスベースの検索をサポートするために用意されている 6 つの関連メソッドを次の表にまとめておきます。
インデックスベース検索に関係するメソッド:
メソッド | 用途 |
---|---|
EditKey |
検索キー バッファの現在の内容を保存し、データセットを dsSetKey 状態にして、アプリケーションで検索の実行に先だって既存の検索条件を変更できるようにします。 |
FindKey |
SetKey メソッドと GotoKey メソッドを単一のメソッドに結合したものです。 |
FindNearest |
SetKey メソッドと GotoNearest メソッドを単一のメソッドに結合したものです。 |
GotoKey |
検索条件に完全に一致する最初のレコードをデータセット内で検索し、見つかった場合は、そのレコードにカーソルを移動します。 |
GotoNearest |
文字列ベースのフィールドを検索対象とし、一部のキー値に基づいて最も近いレコードを見つけ、そのレコードにカーソルを移動します。 |
SetKey |
検索キー バッファをクリアし、テーブルを dsSetKey 状態にして、アプリケーションで検索の実行に先だって新しい検索条件を指定できるようにします。 |
GotoKey と FindKey は論理関数で、検索に成功した場合には、一致したレコードにカーソルを移動し True を返します。検索に失敗した場合、カーソルは移動せず、これらの関数は False を返します。
GotoNearest と FindNearest は、完全に一致した最初のレコードにカーソルを移動します。一致するレコードが見つからない場合は、指定された検索条件より値が大きい最初のレコードにカーソルを移動します。
以下のトピックでは、Goto 系メソッドと Find 系メソッドについて詳しく解説しています。