我正在使用带SQLite驱动程序的FireDAC。 (Delphi东京10.2.3)
在查询表达式中使用DATETIME
可以正常工作:
with Query1 do
begin
Close;
SQL.Text := 'select DATETIME(start_time) from times where ' +
'DATETIME(start_time) >= DATETIME("2019-02-01 00:00:00")';
Open;
....
end;
但是,如果我尝试为TFDTable.Filter分配类似的表达式:
tblTimes.Filter := 'DATETIME(start_time) >= DATETIME("2019-02-01 00:00:00")';
tblTimes.Filtered := True;
它导致此错误:
[FireDAC][Stan][Eval]-100. Column or function [DATETIME] is not found. Hint: if the name is a function name, then add FireDAC.Stan.ExprFuncs to uses clause
注意:FireDAC.Stan.ExprFuncs已经在using子句中
怎么了?可以在Filter子句中使用这样的表达式(在D7中使用aducom组件对我来说效果很好)?
答案 0 :(得分:2)
尝试一下:
tblTimes.Filter := 'start_time >= {dt 2019-02-01 00:00:00}';
tblTimes.Filtered := True;
,请阅读以下内容: http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Preprocessing_Command_Text_(FireDAC)