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 がただ 1 つのフィールド名である場合、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');

関連項目