Bde.DBTables.TTable.FindNearest

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

procedure FindNearest(const KeyValues: array of const);

C++

void __fastcall FindNearest(const System::TVarRec *KeyValues, const int KeyValues_High);

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
procedure
function
public
Bde.DBTables.pas
Bde.DBTables.hpp
Bde.DBTables TTable

Beschreibung

Bewegt den Cursor zu dem Datensatz, der einem angegebenen Satz von Schlüsselwerten an besten entspricht.

Mit FindNearest kann der Cursor zu einem bestimmten Datensatz in einer Datenmenge oder zum ersten Datensatz der Datenmenge bewegt werden, der größer als die im Parameter KeyValues angegebenen Werte ist. KeyValues enthält ein Array von Feldwerten, die durch Kommas voneinander getrennt sind. Das Array wird Schlüssel genannt. Dieses Array wird Schlüssel genannt. Jeder Wert im Schlüssel kann ein Literal, eine Variable, oder nil (Delphi) bzw. NULL (C++) sein. Wenn die in KeyValues übergebene Anzahl der Werte kleiner als die Anzahl der Spalten des für die Suche verwendeten Index ist, wird für die fehlenden Werte Null verwendet. KeyValues_Size gibt den Index des letzten Wertes von KeyValues an (Gesamtanzahl der gegebenen Werte minus 1). In der folgenden Anweisung wird mit der Methode FindKey die Tabellenzeile gesucht, die den Wert "'Princess Island SCUBA" im Indexfeld enthält.


Table1.FindNearest(['Princess Island SCUBA']);


TVarRec vr = ("Princess Island SCUBA");
Table1->FindNearest(&vr, 0);


Hinweis:  In C++ kann der Suchwert entweder als TVarRec-Objekt (wie oben) oder als ARRAYOFCONST-Konstrukt FindNearest übergeben werden. Im nachfolgenden Beispiel wird dieselbe Suche wie oben mit ARRAYOFCONST durchgeführt.


Table1->FindNearest(ARRAYOFCONST(("Princess Island SCUBA")));


Bei Paradox- und dBASE-Tabellen muss der Schlüsselwert immer einen Index darstellen, der in der Eigenschaft IndexName angegeben werden kann. Wenn für IndexName kein Wert angegeben wurde, verwendet FindNearest den Primärindex der Tabelle. Beachten Sie, dass FindKey nicht mit dBASE-Ausdrucksindizes funktioniert. Verwenden Sie dafür die Methoden GotoKey oder GotoNearest.

Bei SQL-Tabellen kann der Schlüsselwert einem in IndexName angegebenen Index oder einer in der Eigenschaft IndexFieldNames angegebenen Liste von Feldnamen entsprechen.

FindNearest positioniert den Cursor entweder auf einem Datensatz, der genau mit den Suchkriterien übereinstimmt oder auf dem ersten Datensatz, dessen Werte größer als die in den Suchkriterien angegebenen Werte sind. Existieren keine Datensätze, die dem angegebenen Kriterium entsprechen oder dieses übersteigen, positioniert FindNearest den Cursor auf dem letzten Datensatz der Tabelle. Die Einstellung von KeyExclusive beeinflusst außerdem das Verhalten an den Bereichsgrenzen und somit den Datensatz, der von FindNearest ausgewählt wird.

Siehe auch