FireDAC.Comp.DataSet.TFDDataSet.Lookup

提供: RAD Studio API Documentation
移動先: 案内検索

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

プロパティ

種類 可視性 ソース ユニット
function public
FireDAC.Comp.DataSet.pas
FireDAC.Comp.DataSet.hpp
FireDAC.Comp.DataSet TFDDataSet

説明

データセットから、指定キー フィールドの値でレコードを検索し、結果フィールドの値を返します。


Lookup を使用して、データセットから、指定キー フィールドの値でレコードを検索し、結果フィールドの値を返します。このときデータセットの現在の位置は変わりません。

AKeyFields は、検索対象のフィールド名をセミコロンで区切ったリストです。AKeyValuesVariant で、各キー フィールドで検索する値が含まれます。AKeyFields がただ 1 つのフィールド名である場合、AKeyValues は単一の値です。AKeyFields に複数のフィールド名が含まれている場合、AKeyValues はバリアント配列で、その各要素がキー フィールドに対応します。AResultFields は、値が返されるフィールド名をセミコロンで区切ったリストです。レコードが見つかった場合は、Lookup は、バリアント配列を返します。この配列には、AResultFields で指定した各フィールドからの値が含まれます。見つからない場合は nil を返します。

レコード検索を最適化するために、アプリケーションでクライアント インデックスをセットアップできます。インデックスが Lookup で使用されるのは、次の条件が満たされる場合です。

  • インデックス フィールドのリストの先頭に、AKeyFields の各フィールドが含まれること。
  • インデックスが、soNoCase オプションなしで作成されていること。
  • インデックスはアクティブで、現在のインデックスであること。

procedure TForm1.Button1Click(Sender: TObject);
var
  V: Variant;
  C: Integer;
  A: String;
begin
  V := FDQuery1.Lookup('Company;State', 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('The record is not found !');
end;

関連項目