自定义函数

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

 

posted @ 2022-11-22 09:23  Luo大哥  阅读(56)  评论(0编辑  收藏  举报