Как получить результат SQL запроса?

227
26 ноября 2016, 19:07

выполняю вот такой запрос

const QString queryStr = QString::fromLatin1("SELECT DISTINCT Date FROM 
Calen WHERE Date ='%1'").arg(maindate.toString("yyyy-MM-dd"));
QSqlQuery mainquery(queryStr);
mainquery.exec();

Как узнать не пустой ли запрос получился в итоге? или как узнать количество строк в нем ?

Answer 1

Для этого существует метод QSqlQuery::next():

while (mainquery.next()) 
{
    //Здесь получаете Ваши данные
}

Если в ответе нет записей, то цикл while не выполнится ни разу, в противном случае он выполнится столько раз, сколько строк должно быть возвращено.

Кстати, у Вас в коде вопиющая ошибка, которая может привести к SQL-инъекции. Правильно привязывать параметры запроса нужно так:

QSqlQuery mainquery;
mainquery.prepare("SELECT DISTINCT Date FROM Calen WHERE Date=:date");
mainquery.bindValue(":date", maindate.toString("yyyy-MM-dd"));
if(mainquery.exec())
{
    while (mainquery.next()) 
    {
        //Здесь получаете Ваши данные
    }
}
READ ALSO
SIGSEGV при сборке приложения в режиме релиза?

SIGSEGV при сборке приложения в режиме релиза?

Проблема заключается в том что я не могу понять почему я получаю ошибку SIGSEGVЕсли я собираю в режиме Debug программа работает, все хорошо, все...

212
Что за значение [System process] возвращает Process32First

Что за значение [System process] возвращает Process32First

Что это обозначает и зачем оно вообще нужно? Может где то используется?

285
Почему выбивает на указанной строке?

Почему выбивает на указанной строке?

Поясните мне мою ошибку в данной функции на выделение памятиКак только доходит до строчки numb[i] = new char[50]; - сразу ошибка и в отладчике пишет...

173
Некорректный вывод после чтения файла C++

Некорректный вывод после чтения файла C++

Добрый день! У меня имеется статический метод listOfStudents() который открывает текстовый файл и считывает оттуда мои данные

195