Guckst du Locate in
OH!
Zitat von
Die Delphi-Hilfe:
Die Methode Locate verschiebt den Cursor in die erste Zeile, die einer angegebenen Menge von Suchkriterien entspricht. Im einfachsten Fall übergeben Sie der Methode Locate den Namen der zu durchsuchenden Spalte, einen zu suchenden Feldwert und ein Options-Flag zur Angabe, ob bei der Suche die Groß-/Kleinschreibung berücksichtigt werden soll, oder ob die Suche nach einem Teilschlüssel zulässig ist. (Bei der Suche nach einem Teilschlüssel kann der als Suchkriterium angegebene String ein Präfix des eigentlichen Feldwerts sein.) Mit dem folgenden Quelltext wird der Cursor in die erste Zeile der Datenmenge CustTable gesetzt, in welcher der Wert in der Spalte Company "Professional Divers, Ltd." lautet:
var
LocateSuccess: Boolean;
SearchOptions: TLocateOptions;
begin
SearchOptions := [loPartialKey];
LocateSuccess := CustTable.Locate('Company', 'Professional Divers, Ltd.', SearchOptions);
end;
Wenn entsprechende Daten vorhanden ist, wird der erste Datensatz, der den gesuchten Wert enthält, zum aktuellen Datensatz. Die Methode Locate gibt den Wert True zurück, wenn ein passender Datensatz vorhanden ist, den Wert False, wenn dies nicht der Fall ist. Falls bei der Suche keine passenden Daten gefunden werden, bleibt der bisherige aktuelle Datensatz aktiv.
Die Leistungsfähigkeit der Methode Locate zeigt sich, wenn Sie mehrere Spalten durchsuchen und mehrere Werte als Suchkriterien angeben. Bei den Suchwerten handelt es sich um Varianten. Dies bedeutet, daß Sie mehrere unterschiedliche Datentypen für die Suchkriterien verwenden können. Wenn mehrere Spalten in einem Such-String angegeben werden sollen, müssen die einzelnen Elemente durch Semikolons getrennt werden.
Da es sich bei den Suchwerten um Varianten handelt, müssen Sie bei der Übergabe mehrerer Werte entweder ein Varianten-Array als Argument übergeben (beispielsweise die Rückgabewerte der Methode Lookup), oder Sie müssen das Varianten-Array mit der Funktion VarArrayOf programmieren. Das folgende Quelltextbeispiel zeigt eine Suche anhand mehrerer Spalten, bei der mehrere Suchwerte angegeben und eine Übereinstimmung mit einem Teilschlüssel festgelegt werden:
with CustTable do
Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver','P']), loPartialKey);
Beim Arbeiten mit Locate wird das schnellste verfügbare Verfahren zum Auffinden der passenden Datensätze verwendet. Wenn die zu durchsuchenden Spalten indiziert sind und der Index mit den angegebenen Suchoptionen übereinstimmt, wird der Index zum Suchen verwendet.[/size]