Bde.DBTables.TBDEDataSet.Locate

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

function Locate(const KeyFields: string; const KeyValues: Variant;  Options: TLocateOptions): Boolean; override;

C++

virtual bool __fastcall Locate(const System::UnicodeString KeyFields, const System::Variant &KeyValues, Data::Db::TLocateOptions Options);

Eigenschaften

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


Beschreibung

Durchsucht die Datenmenge nach einem bestimmten Datensatz und macht ihn zum aktuellen Datensatz.

Mit Locate kann eine Datenmenge nach einem bestimmten Datensatz durchsucht und der Cursor auf diesem Datensatz positioniert werden.

KeyFields ist ein String mit den Feldern, die durchsucht werden sollen. Trennen Sie die einzelnen Felder durch ein Semikolon.

KeyValues ist ein variantes Array mit den Werten, nach denen in den Schlüsselfeldern (KeyFields) gesucht werden soll. Enthält KeyFields nur ein Feld, gibt KeyValues den Wert dieses Feldes im gewünschten Datensatz an. Gibt es mehrere Schlüsselfelder, übergeben Sie in KeyValues ein variantes Array, das Sie auch zur Laufzeit mithilfe der Routine VarArrayOf erstellen können. Ein Beispiel:


with CustTable do
Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver', 'P', '408-431-1000']), [loPartialKey]);


TLocateOptions Opts;
Opts.Clear();
Opts << loPartialKey;
Variant locvalues[2];
locvalues[0] = Variant("Sight Diver");
locvalues[1] = Variant("P");


CustTable->Locate("Company;Contact", VarArrayOf(locvalues, 1), Opts);


Options ist eine Menge von Flags, mit denen Sie optional weitere Suchkriterien für String-Felder festlegen können. Enthält der Parameter den Wert loCaseInsensitive, findet keine Unterscheidung zwischen Groß- und Kleinschreibung statt. Bei loPartialKey müssen Strings nicht vollständig übereinstimmen. Enthält Options eine leere Menge oder handelt es sich bei der Eigenschaft KeyFields nicht um Stringfelder, wird Options ignoriert.

Locate gibt true zurück, wenn ein Datensatz gefunden wird. Dieser Datensatz wird außerdem aktiviert. Andernfalls gibt Locate false zurück.

Locate verwendet immer die schnellste Methode zum Auffinden übereinstimmender Datensätze. Sind die Suchfelder in KeyFields indiziert und ist der Index mit der angegebenen Suchoption kompatibel, wird der Index verwendet. Andernfalls wird für die Suche ein Filter erstellt.

Siehe auch