SQL take a value
Привет. Не получается забрать значение с query.
Вот такой метод отрабатывает верно, то есть, если у меня поле weight = 3, то 3 и вернет
- int ReportDataBase::getWeight(const int reportID) const
- {
- int weight = 0;
- QSqlQuery query(db);
- QString queryString = QString("SELECT weight FROM reports WHERE id=")+QString::number(reportID);
- query.prepare(queryString);
- query.exec(queryString);
- if(query.isActive()) {
- if(query.next()) {
- const QSqlRecord record = query.record();
- weight = query.value(record.indexOf("weight")).toInt();
- }
- }
- return weight;
- }
но вот аналогичный метод, уже пишет ошибку
QSqlQuery::value: not positioned on a valid record
в строке
query.value(record.indexOf("weight")).toInt()
- int ReportDataBase::getLowerWeight() const
- {
- int weight = 0;
- QSqlQuery query(db);
- QString queryString = QString("SELECT MAX(weight) FROM reports");
- query.prepare(queryString);
- query.exec(queryString);
- if(query.isActive()) {
- if(query.next()) {
- const QSqlRecord record = query.record();
- weight = query.value(record.indexOf("weight")).toInt();
- }
- }
- return weight;
- }
при чем, в отладчике я вижу нужное мне значение, вот оно
но всё-равно ставит weight = 0, как так-то? код же аналогичный! скрипт рабочий! я в SQLite проверял этот запрос.
3
252
Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
- Последние комментарии
- AK1 апреля 2025 г. 11:41Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
- VP9 марта 2025 г. 16:14Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
- Сейчас обсуждают на форуме
- DT14 апреля 2025 г. 15:38Всем привет! На Qt 6.8 MinGW пытаюсь сделать управление подключением WiFi из программы. Пока делаю поддержку Windows, но так же хочу в дальнейшем внедрить и поддержку Linux/MacOS. Для…
- f15 февраля 2025 г. 13:46Подскажите, пожалуйста! Как данный класс можно дополнить, чтобы созданные объекты можно было перемещать мышкой по сцене?
- Не запускается компьютер (точнее работает блок , но сам монитор вообще жесть)В общем я ничего с интернета не скачивала в последнее время. На компе никаких левых пр…
- Вопрос решен. Узнать QModelIndex элемента на который мы перетаскиваем другой элемент, можно с помощью функции indexAt(event->position().toPoint()) представления QTreeViev вызываемой в переопр…
Добрый день
Есть мысль, что там нужно имя задать для результата. Скорее всего возвращается результат выполнения с именем, отличным от weight
Напишите так
огромное вам спасибо! я вчера сидел с этой фигней часов до 11 вечера и потом в отлачике нашел ошибку, ну думаю, делов на 5 минут, решил лечь спать и проснуться сегодня пораньше и доделать успеть. В итоге, с 7 утра уже часов 5, как слепой котенок наугад, идеи все кончились и гугл тоже) А так работает! Еще раз спасибо!
Внутренние функции SQL типо max, min генерируют имена для колонок наподобие max_weight.
Уверен, что если написать так, то тоже заработает
Ваш запрос генерирует новую таблицу, а не просто забирает пачку записей из существующих, поэтому нужно либо явно задавать имя колонки, либо понимать логику генерирования имён новых колонок в зависимости от внутренних функций SQL
спасибо за пояснения!