Bde.DBTables.TTable.FindNearest
Delphi
procedure FindNearest(const KeyValues: array of const);
C++
void __fastcall FindNearest(System::TVarRec const *KeyValues, const int KeyValues_Size);
プロパティ
| 種類 | 可視性 | ソース | ユニット | 親 |
|---|---|---|---|---|
procedure function |
public | Bde.DBTables.pas Bde.DBTables.hpp |
Bde.DBTables | TTable |
説明
指定されたキー値セットに最も近いレコードにカーソルを移動します。
FindNearest メソッドを呼び出すと,データセット内の指定されたレコード,または指定された値より大きいレコードのうち最初のレコードにカーソルが移動します。KeyValues パラメータは,検索キーである項目値をカンマで区切った配列です。キーの各値は,リテラル値,変数,nil(Delphi),または NULL(C++)のいずれかの値をとることができます。キー内の値の数が検索に使用される列の数より少ない場合,その部分の値は null になります。KeyValues_Size は,KeyValues にある最後の値のインデックスを指定します(供給された値の総数よりも 1 少ない値)。次の例では,FindKey メソッドを使用して,インデックス項目に「'Princess Island SCUBA」という値があるテーブル行を検索します。
Table1.FindNearest(['Princess Island SCUBA']);
TVarRec vr = ("Princess Island SCUBA"); Table1->FindNearest(&vr, 0);
メモ: C++ コードでは,FindNearest に検索値を渡すには,TVarRec(上記)または ARRAYOFCONST 構文を使用します。次の例では上の例と同じ検索を実行しますが,ARRAYOFCONST を使用しています。
Table1->FindNearest(ARRAYOFCONST(("Princess Island SCUBA")));
Paradox テーブルと dBASE テーブルの場合,キーは必ずインデックスでなければならず,IndexName プロパティで指定できます。IndexName に何も指定されていない場合,FindNearest はテーブルの一次インデックスを使用します。ただし,FindKey は dBASE の式インデックスでは機能しません。かわりに GotoKey または GotoNearest メソッドを使用します。
SQL テーブルの場合,キーは IndexName プロパティで指定したインデックス,または IndexFieldNames プロパティの項目名リストと一致することがあります。
FindNearest は,検索キーに完全に一致するレコード,あるいは検索キーに指定された値より大きいレコードのうち最初のレコードにカーソルを移動します。一致するレコードまたは指定された値より大きいレコードがない場合,FindNearest はテーブル内の最後のレコードにカーソルを移動します。KeyExclusive プロパティは範囲の境界条件にも影響を及ぼし,FindNearest によって選択されるレコードにも影響を及ぼすことになります。