FireDAC.Comp.DataSet.TFDDataSet.Lookup

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

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);

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;

Siehe auch