FireDAC.Comp.Client.TFDMetaInfoQuery.Indexes

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

Delphi

property Indexes: TFDIndexes read FIndexes write SetIndexes stored IsIS;

C++

__property Indexes;

プロパティ

種類 可視性 ソース ユニット
property published
FireDAC.Comp.Client.pas
FireDAC.Comp.Client.hpp
FireDAC.Comp.Client TFDMetaInfoQuery

説明

データセットに適用されるすべてのクライアント インデックスをリストにします。

FireDAC.Comp.Client.TFDMetaInfoQuery.Indexes は FireDAC.Comp.DataSet.TFDDataSet.Indexes を継承しています。以下の内容はすべて FireDAC.Comp.DataSet.TFDDataSet.Indexes を参照しています。

データセットに適用されるすべてのクライアント インデックスをリストにします。

Indexes を使用すると、データセット レコードに、クライアント側のデータ ビューを定義することができます。Indexes は、TFDIndex オブジェクトのコレクションで、それぞれ任意で定義します:

個々のインデックスは、ソート定義やフィルタ定義のみではありません。FireDAC は、各アクティブ インデックスに対して、データ上に一定のビューを維持し、アプリケーションはデータをフェッチしたり、データを編集したりします。それは、さらなるオーバーヘッドを生じさせますが、これにより、インデックス間の切り替えを遅延なしで行うことができます。 

ビューをカレントにするには、Selected プロパティを True に設定するか、データセットの IndexName プロパティをそのビューの名前にします。

メモ: ビューは、Active プロパティが True になっていなければなりません。

データセットは、IndexesActiveTrue の際に、Indexes ビューを保持します。アプリケーションは、データセットへのバッチ更新を実行する必要がある際、更新前に IndexesActiveFalse に設定し、更新後にもとの値に戻します。また、BeginBatchEndBatch メソッドも参照してください。 

IndexFieldNames の設定では、TFDIndex オブジェクトを Indexes コレクションに追加しません。データセットを開く前に IndexDefs を定義すると、Indexes をクリアし、それを IndexDefs の情報を使用して埋めます。2 つの代替手段があります: IndexDefs を使用するか、Indexes を使用する方法です。より柔軟なため、Indexes を使用する方を推奨します。 

ナビゲーション メソッドによっては(LocateLocateExLookupLookupExSetRange)、インデックスを使用して、それらのオペレーションを最適化することができます。 

Indexes におけるソート式またはフィルタ式は、拡張式構文をサポートしています。

例:

with FDMemTable1.Indexes.Add do begin
  Name := 'by_name';
  Fields := 'NAME;DT';
  Active := True;
end;
with FDMemTable1.Indexes.Add do begin
  Name := 'by_payments';
  Expression := 'sum(sal + bonus)';
  Filter := 'dep_id is not null;
  Active := True;
end;
FDMemTable1.IndexesActive := True;
FDMemTable1.IndexName := 'by_name';

関連項目

サンプル