FireDAC.Comp.DataSet.TFDDataSet.Lookup
Delphi
function Lookup(const AKeyFields: string; const AKeyValues: Variant; const AResultFields: string): Variant; override;
C++
virtual System::Variant __fastcall Lookup(const System::UnicodeString AKeyFields, const System::Variant &AKeyValues, const System::UnicodeString AResultFields);
Inhaltsverzeichnis
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
function | public | FireDAC.Comp.DataSet.pas FireDAC.Comp.DataSet.hpp |
FireDAC.Comp.DataSet | TFDDataSet |
Beschreibung
Durchsucht die Datenmenge nach einem Datensatz mit den angegebenen Schlüsselfeldwerten und gibt die resultierenden Feldwerte zurück.
Mit Lookup durchsuchen Sie die Datenmenge nach einem Datensatz mit den angegebenen Schlüsselfeldwerten und geben die resultierenden Feldwerte zurück, ohne die aktuelle Position in der Datenmenge zu ändern.
AKeyFields
ist eine durch Semikolon getrennte Liste von Feldnamen, für die die Suche durchgeführt werden soll. AKeyValues
ist eine Variante mit den Werten, die mit den Schlüsselfeldern verglichen werden sollen. Wenn AKeyFields
einen einzelnen Feldnamen enthält, dann ist AKeyValues
ein einfacher Wert. Wenn AKeyFields
mehrere Feldnamen enthält, dann ist AKeyValues
ein Varianten-Array, in dem die Einträge den Schlüsselfeldern entsprechen. AResultFields
ist eine durch Semikolon getrennte Liste mit Namen von Feldern, deren Werte zurückgegeben werden. Wenn der Datensatz gefunden wird, gibt Lookup ein Varianten-Array mit den Werten aus den in AResultFields
angegebenen Feldern zurück. Andernfalls wird nil zurückgegeben.
Zur Optimierung der Suche kann in einer Anwendung ein Clientindex eingerichtet werden. Der Index wird von Lookup verwendet, wenn die folgenden Bedingungen zutreffen:
- Die Indexfeldliste verfügt als Präfix über
AKeyFields
-Felder. - Der Index wurde ohne die Option
soNoCase
erzeugt. - Der Index ist aktiv und der aktuelle Index.
Beispiel
procedure TForm1.Button1Click(Sender: TObject);
var
V: Variant;
C: Integer;
A: String;
begin
V := FDQuery1.Lookup('Firma;Staat', VarArrayOf(['Blue Sports', 'OR']), 'CustNo;Addr1');
if not VarIsNull(V) then begin
C := V[0];
A := V[1];
ShowMessage(IntToStr(C) + #13#10 + A);
end
else
ShowMessage('Der Datensatz wurde nicht gefunden!');
end;