TLiteQuery и IsEmpty

Обсуждение возникших проблем, предложений и ошибок UniDAC компонентов
Закрыто
AlexeyPikurov
Сообщения: 2
Зарегистрирован: Чт 28 апр 2016 15:53

TLiteQuery и IsEmpty

Сообщение AlexeyPikurov » Чт 28 апр 2016 15:59

Добрый день.

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.

Как быть?

AlexeyPikurov
Сообщения: 2
Зарегистрирован: Чт 28 апр 2016 15:53

Re: TLiteQuery и IsEmpty

Сообщение AlexeyPikurov » Пт 29 апр 2016 07:48

P.S. Заменил select sum() на select total(), всё получилось. Но, насколько я понимаю, это нестандартное решение.

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

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

MaximG
Devart Team
Сообщения: 114
Зарегистрирован: Пн 06 июл 2015 12:51

Re: TLiteQuery и IsEmpty

Сообщение MaximG » Пт 29 апр 2016 08:14

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

Закрыто