Bde.DBTables.TTable.FindKey

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

function FindKey(const KeyValues: array of const): Boolean;

C++

bool __fastcall FindKey(const System::TVarRec *KeyValues, const int KeyValues_High);

Eigenschaften

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

Beschreibung

Sucht nach einem Datensatz, der die angegebenen Feldwerte enthält.

Mit FindKey können Sie einen bestimmten Datensatz in einer Datenmenge suchen. 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.FindKey(['Princess Island SCUBA']);



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



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



Table1->FindKey(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 FindKey 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.

Wenn die Suche erfolgreich war, positioniert FindKey den Cursor auf dem gefundenen Datensatz und gibt den Wert true zurück. Andernfalls wird der Cursor nicht verschoben, und FindKey gibt false zurück.

Siehe auch