Два запроса:
sqlQuery.prepare("SELECT * FROM ti ORDER BY tiid DESC LIMIT 1");
sqlQuery.exec();
sqlQuery.next();
Archiver.countTI = sqlQuery.value(0).toInt();//полученное количество записей в текущей рабочей таблице
sqlQuery.prepare("SELECT * FROM messages ORDER BY msgid DESC LIMIT 1");
sqlQuery.exec();//ВЫЛЕТАЕТ ТУТ
sqlQuery.next();
Archiver.countMS = sqlQuery.value(0).toInt();//так-же для сообщений
Вылетает следующий эксцепшн:
Таблица ti содержит примерно 700к записей.
Таблица messages содержит примерно 0 записей.
Как обойти сей момент кодом?
Пробовал:
if (sqlQuery.exec())
{
sqlQuery.next();
Archiver.countMS = sqlQuery.value(0).toInt();//так-же для сообщений
}
else
Archiver.countMS = 0;
Что-то никак не найду в документации нужной инфы, ну не создавать же в конце концов запись в таблице =(
Есть идея запросить размер так:
sqlQuery.prepare("SELECT COUNT(*) FROM tc");
Но она несколько не устраивает
1) запрос этот дольше вышеприведенного
2) не гаратируется точность (проверено для таблиц >>1M записей)