Функция DATETIME не найдена при использовании в выражении TFDTable.Filter - PullRequest
0 голосов
/ 01 марта 2019

Я использую FireDAC с драйвером SQLite.(Delphi Tokyo 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 уже используется:

Что не так?Можно ли использовать такое выражение в предложении Filter (у меня оно работало нормально с использованием компонентов aducom в D7)?

1 Ответ

0 голосов
/ 01 марта 2019

Попробуйте это:

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)

...