Страница 1 из 1

TLiteQuery и IsEmpty

Добавлено: Чт 28 апр 2016 15:59
AlexeyPikurov
Добрый день.

TLiteQuery 2.16.19, Delphi 7

Код: Выделить всё

Close;         //        0              1             2             3
SQL.Text := 'select sum(n_voice), sum(n_video), sum(l_voice), sum(l_video) from stat';
Open;

if IsEmpty then ....
Запрос не должен ничего возвращать, таблица stat пустая. Но IsEmpty упорно даёт false. RecordCount возвращает 1.

Как быть?

Re: TLiteQuery и IsEmpty

Добавлено: Пт 29 апр 2016 07:48
AlexeyPikurov
P.S. Заменил select sum() на select total(), всё получилось. Но, насколько я понимаю, это нестандартное решение.

Я перевожу проект MyChat, использующий AbsoluteDataBase — на SQLite и ваш компонент, периодически натыкаюсь на грабли несовместимости.

Возможно, у вас есть какой-нибудь гайд по нюансам перехода?

Re: TLiteQuery и IsEmpty

Добавлено: Пт 29 апр 2016 08:14
MaximG
Таково поведение агрегатных функций в SQLite: https://www.sqlite.org/lang_aggfunc.html Ваш запрос действительно вернет одну строку. Убедиться в этом можно, выполнив запрос в любом SQL редакторе (например SQLite Expert). К сожалению, мы не располагаем документами по переходу с AbsoluteDataBase на SQLite