FireDAC.Comp.DataSet.TFDDataSet.Locate
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
は、文字列フィールドに対する検索モードの設定です。 AOptions
が loCaseInsensitive
の場合、Locate はフィールドの一致確認をする際に大文字小文字の違いは無視します。 AOptions
が loPartialKey
の場合、AKeyValues
パラメータには一部の文字列が含まれます。
一致するレコードが見つかった場合、そのレコードがカレントとなり、Locate は True を返します。
レコード検索を最適化する場合、アプリケーションはクライアント インデックスを設定します。 次の条件に合致する場合に、インデックスは Locate によって使用されます。
- インデックス フィールド リストは、接頭辞として
AKeyFields
フィールドを保有します。 - インデックスが
soNoCase
オプションでビルドされた場合には、AOptions
はloCaseInsensitive
を含み、そうでなければインデックスはsoNoCase
なしでビルドされ、AOptions
はloCaseInsensitive
を含みません。 - インデックスはアクティブであり、カレントです。
例
CustTable.IndexFieldNames := 'ID';
if CustTable.Locate('ID', 1001, []) then
CustTable.Delete
else
ShowMessage('The customer with ID=1001 is not found');