Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ADO.Locate (https://www.delphipraxis.net/25418-ado-locate.html)

rbest 6. Jul 2004 08:32


ADO.Locate
 
hai allerseits,
ich möchte gerne in einer Query nach 2 Feldern suchen, finde in der Hilfe aber kein Beispiel. Ist das so korrekt:
Delphi-Quellcode:
AusfM2.Locate('cWTarifNr;cUrland', cVar1+cVar2, []);
Vielen Dank für die Hilfe

Stevie 6. Jul 2004 08:44

Re: ADO.Locate
 
Guckst du Locate in OH! :wink:
Zitat:

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]


rbest 6. Jul 2004 09:08

Re: ADO.Locate
 
diese Beschreibung habe ich nicht gefunden. Ich hatte auf Locate F1 gepresst. :lol:
Wie komme ich an "deinen" Text?

Stevie 6. Jul 2004 09:11

Re: ADO.Locate
 
Hilfe aufrufen und bei Suchen eingeben.

Stevie 6. Jul 2004 09:11

Re: ADO.Locate
 
Hilfe aufrufen und bei Suchen eingeben.

[edit]Hoppla...[/edit]

Alfons_G 6. Jul 2004 09:13

Re: ADO.Locate
 
An den Text kommst Du durchaus durch Drücken von F1 über "locate" ;)
Du bekommst ja mehrere locate-Methoden angeboten und musst dann TCustomADODataSet wählen.

:coder:

rbest 6. Jul 2004 09:15

Re: ADO.Locate
 
ja, ich wählte irgendein anderes. Muss ich wohl nächstens alle durchsehen. Auf jeden Fall besten Dank, meine Funktion läuft.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz