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() );
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
function | public | FireDAC.Comp.DataSet.pas FireDAC.Comp.DataSet.hpp |
FireDAC.Comp.DataSet | TFDDataSet |
Description
Crée un évaluateur d'expression pour l'ensemble de données.
Utilisez la méthode CreateExpression pour traduire une chaîne contenant une expression en représentation binaire et pour créer un évaluateur d'expression. L'expression peut contenir des noms de champs de cet ensemble de données. Pour créer un évaluateur, l'ensemble de données doit être actif.
Cette méthode renvoie l'évaluateur, qui peut être utilisé plusieurs fois pour évaluer efficacement une expression spécifiée en appelant sa méthode Evaluate. L'évaluateur est associé à l'enregistrement en cours. Lorsque la position change, l'application doit ajuster l'évaluateur :
oEval.DataSource.Position := FDMemTable1.GetRow;
L'évaluateur est une interface dont les références sont comptées. Il n'est pas nécessaire de le libérer explicitement. Toutes les références à l'évaluateur doivent être libérées avant la fermeture de l'ensemble de données.
Les expressions ne peuvent pas contenir de fonctions d'agrégation, telles que SUM
, COUNT
. FireDAC supporte la syntaxe étendue des expressions.
Exemple
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;