FireDAC.Comp.DataSet.TFDDataSet.CreateExpression
Delphi
function CreateExpression(const AExpr: String; AOptions: TFDExpressionOptions = []): IFDStanExpressionEvaluator;
C++
Firedac::Stan::Intf::_di_IFDStanExpressionEvaluator __fastcall CreateExpression(const System::UnicodeString AExpr, Firedac::Stan::Intf::TFDExpressionOptions AOptions = Firedac::Stan::Intf::TFDExpressionOptions() );
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
function | public | FireDAC.Comp.DataSet.pas FireDAC.Comp.DataSet.hpp |
FireDAC.Comp.DataSet | TFDDataSet |
説明
データセットの式評価モジュールを作成します。
CreateExpression メソッドを使用して、式を含む文字列をバイナリ表現に変換し、式評価モジュールを作成します。この式には、現在のデータセットのフィールド名を含むことができます。評価モジュールを作成するには、データセットがアクティブであることが必要です。
このメソッドは、Evaluate メソッドを呼び出すことにより、指定された式を効果的に評価するために、複数回使用できる、評価モジュールを返します。この評価モジュールは現在のレコードに関連付けられます。位置が変更された後は、アプリケーションで評価モジュールを調整する必要があります。
oEval.DataSource.Position := FDMemTable1.GetRow;
評価モジュールは、参照カウント インターフェイスです。明示的に解放する必要はありません。データセットを閉じる前に、評価モジュールへの参照がすべて解放されている必要があります。
これらの式には、集計関数(SUM
、COUNT
など)を含むことはできません。FireDAC は式の拡張構文をサポートします。
例
var
oEval: IFDStanExpressionEvaluator;
...
oEval := FDMemTable1.CreateExpresison('(sal + comm) * tax / 100');
Label1.Caption := oEval.Evaluate;
...
FDMemTable1.Next;
oEval.DataSource.Position := FDMemTable1.GetRow;
Label1.Caption := oEval.Evaluate;
...
oEval := nil;
FDMemTable1.Close;