自定义函数
FIREDAC可以自定义sqlite的函数,方法如下:
首先需要一个控件:TFDSQLiteFunction,其设置如下:
sqlFunction.DriverLink := FDPhysSQLiteDriverLink1; sqlFunction.FunctionName := 'StockPrice';//设置函数名 sqlFunction.ArgumentsCount := 2;//设置参数个数 sqlFunction.Active := True; sqlFunction.OnCalculate := sqlFunctionCalculate;//设置函数运行时执行的子程序名
子程序的例子代码如下:
procedure TfrmGettingStarted.sqlFunctionCalculate(AFunc: TSQLiteFunction; AInputs: TSQLiteInputs; AOutput: TSQLiteOutput; var AUserData: TObject); begin AOutput.AsCurrency := AInputs[0].AsCurrency * AInputs[1].AsInteger; end;
就是设置输出的值为输入值的计算方式。
通过以上设置后,sql语句就可以设置如下:
select *,StockPrice(UnitPrice, UnitsInStock) as StockCost from Products