QSqlQuery, как получить значение счетчика?

У меня есть запрос, который просто получает количество таблиц на основе некоторых критериев, например:

QSqlQuery query("SELECT COUNT(*) FROM some_table WHERE some_value = :something");
query.bindValue(":something", "something");

мой вопрос в том, как мне получить результат этого обратно, очевидно, именно здесь вы бы использовали

query.value(int);
query.value(QString);

Но в документах говорится, что int index one не следует использовать, потому что мы не знаем, каким будет индекс, и я не могу использовать строковый, потому что нет поля, которое можно было бы определить как тот, для которого я хочу получить результат. поэтому, если я правильно говорю, как я могу получить целочисленное значение count в переменную int из этого запроса

ваше здоровье


person AngryDuck    schedule 25.09.2014    source источник


Ответы (2)


Сделайте псевдоним для поля count. Как это:

QSqlQuery query("SELECT COUNT(*) CNT FROM some_table WHERE some_value = :something");

а затем запросить по имени CNT

person borisbn    schedule 25.09.2014
comment
При этом я получаю QSqlQuery::value: not positioned on a valid record - person AngryDuck; 25.09.2014
comment
Вы звонили query.exec() и query.first()? - person borisbn; 25.09.2014
comment
выполнил запрос да, но не поставил первым, сейчас попробую - person AngryDuck; 25.09.2014
comment
Спасибо :), прочитав, что first() будет позиционировать себя на первой действительной записи, которая имеет смысл, ура - person AngryDuck; 25.09.2014
comment
вероятно, изменит это имя переменной, хотя не хочу опечатывать это! - person AngryDuck; 25.09.2014

Вы также можете использовать: Query.next(); Запрос.значение(0).toInt();

Для этого сообщения: QSqlQuery::value: не расположено в допустимой записи, вы должны выполнить: Query.next(); чтобы изменить указатель на первую запись!

person Hasan    schedule 14.02.2018