FireDAC.Comp.DataSet.TFDDataSet.Locate

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

Delphi

function Locate(const AKeyFields: string; const AKeyValues: Variant;  AOptions: TLocateOptions = []): Boolean; override;

C++

virtual bool __fastcall Locate(const System::UnicodeString AKeyFields, const System::Variant &AKeyValues, Data::Db::TLocateOptions AOptions = Data::Db::TLocateOptions() );

プロパティ

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


説明

指定されたフィールド値のレコードをデータセットから検索し、そのレコードをカレントにします。

Locate を使用すると、指定されたフィールド値のレコードをデータセットから検索し、見つかった場合、そのレコードをカレントにします。 

AKeyFields は、検索される、セミコロン区切りのフィールド名のリストです。 

AKeyValues は キー フィールドと一致する値を保有する Variant です。AKeyFields に格納されているのが単一のフィールド名の場合、AKeyValues は単純な値となります。AKeyFields に格納されているのが複数のフィールド名の場合、AKeyValues は、項目がそのキー フィールド群に対応する、バリアント型の配列となります。 

AOptions は、文字列フィールドに対する検索モードの設定です。AOptionsloCaseInsensitive の場合、Locate はフィールドの一致確認をする際に大文字小文字の違いは無視します。AOptionsloPartialKey の場合、AKeyValues パラメータには一部の文字列が含まれます。 

一致するレコードが見つかった場合、そのレコードがカレントとなり、LocateTrue を返します。 

レコード検索を最適化する場合、アプリケーションはクライアント インデックスを設定します。次の条件に合致する場合に、インデックスは Locate によって使用されます。

  • インデックス フィールド リストは、接頭辞としてAKeyFields フィールドを保有します。
  • インデックスが soNoCase オプションでビルドされた場合には、AOptionsloCaseInsensitive を含み、そうでなければインデックスは soNoCase なしでビルドされ、AOptionsloCaseInsensitive を含みません。
  • インデックスはアクティブであり、カレントです。

CustTable.IndexFieldNames := 'ID';
if CustTable.Locate('ID', 1001, []) then
  CustTable.Delete
else
  ShowMessage('The customer with ID=1001 is not found');

関連項目