Михаиллл
Михаиллл2 января 2019 г. 5:07

Как получить данные из QSqlQuery при запросе SELECT

qt, SELECT, QSqlQuery

Здравствуйте.
Делаю запрос в базу данных:

    QSqlQuery query;
    query.prepare("SELECT "
                  "\"NumberID\" ,"
                  "\"Name\" ,"
                  "\"Comments\" ,"
                  "\"Resume\""
              " FROM " + NameTableDB +
             " WHERE \"NumberID\" = 52" 
              ";");

    if (!query.exec()) {qDebug()<<"не получило данные";}
    else
    {
        qDebug()<<"получило данные";
        int IdResume = query.value(0).toInt();
        QString NameResume = query.value(1).toString();
        QString ComentResume = query.value(2).toString();
        QString Resume = query.value(3).toString();
        qDebug()<<"Id"<<IdResume;
        qDebug()<<"Name"<<NameResume;
        qDebug()<<"coment"<<ComentResume;
        qDebug()<<"resume"<<Resume;
    }

дебаг выдает:
получило данные
QSqlQuery::value: not positioned on a valid record
QSqlQuery::value: not positioned on a valid record
QSqlQuery::value: not positioned on a valid record
QSqlQuery::value: not positioned on a valid record
Id 0
Name ""
coment ""
resume ""
Скажите пожалуйста, как мне получить эти данные?

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

4
Михаиллл
  • 2 января 2019 г. 5:28

так работает

        query.first();
        QString NameResume = query.value(0).toString();
        QString ComentResume = query.value(1).toString();
        QString Resume = query.value(2).toString();
        qDebug()<<"Name"<<NameResume;
        qDebug()<<"coment"<<ComentResume;
        qDebug()<<"resume"<<Resume;
    Ruslan Polupan
    • 2 января 2019 г. 5:32
    • (ред.)
    query.next();
    

    Первым оператором в else добавьте.

      R
      • 2 января 2019 г. 5:35
      • (ред.)

      просто потрібно викликати query.next()
      короткий приклад з коду

              n_query = QString("SELECT item_type, "
                                " FROM category WHERE item_id = %1")
                      .arg(json["ic"].toInt()));
      
          }
      
          if (!m_query.exec(n_query))
          {
              qDebug() << Q_FUNC_INFO << n_query;
              qDebug() << m_query.lastError();
          }
      
      
          QSqlRecord rec = m_query.record();
          while (m_query.next()) {
              QJsonObject arr;
              arr.insert("it_type", QJsonValue(m_query.value(rec.indexOf("item_type")).toBool()));
              }
      
        Михаиллл
        • 2 января 2019 г. 6:18

        Извините что побеспокоил.
        Как уже говорил query.first(); все поправило.
        Спасибо всем за участие.

          Комментарии

          Только авторизованные пользователи могут публиковать комментарии.
          Пожалуйста, авторизуйтесь или зарегистрируйтесь
          Г

          C++ - Тест 001. Первая программа и типы данных

          • Результат:66баллов,
          • Очки рейтинга-1
          t

          C++ - Тест 001. Первая программа и типы данных

          • Результат:33баллов,
          • Очки рейтинга-10
          t

          Qt - Тест 001. Сигналы и слоты

          • Результат:52баллов,
          • Очки рейтинга-4
          Последние комментарии
          G
          GoattRock3 сентября 2024 г. 23:50
          Как Копировать Файлы в Linux Задумывались когда-нибудь о том, как мы привыкли доверять свои вещи службам грузоперевозок? Сейчас такие услуги стали неотъемлемой частью нашей жизни, особенно когда речь идет о переездах между …
          ВР
          Влад Русоков2 августа 2024 г. 11:47
          Как Копировать Файлы в Linux Screenshot_20240802-065123.png
          d
          dblas55 июля 2024 г. 21:02
          QML - Урок 016. База данных SQLite и работа с ней в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
          k
          kmssr9 февраля 2024 г. 5:43
          Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
          АК
          Анатолий Кононенко5 февраля 2024 г. 12:50
          Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
          Сейчас обсуждают на форуме
          Evgenii Legotckoi
          Evgenii Legotckoi25 июня 2024 г. 1:11
          добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
          F
          Fynjy22 июля 2024 г. 14:15
          при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
          BlinCT
          BlinCT25 июня 2024 г. 11:00
          Нарисовать кривую в qml Всем привет. Имеется Лист листов с тосками, точки получаны интерполяцией Лагранжа. Вопрос, как этими точками нарисовать кривую? ChartView отпадает сразу, в qt6.7 появился новый элемент…
          BlinCT
          BlinCT5 мая 2024 г. 15:46
          Написать свой GraphsView Всем привет. В Qt есть давольно старый обьект дял работы с графиками ChartsView и есть в 6.7 новый но очень сырой и со слабым функционалом GraphsView. По этой причине я хочу написать х…
          Evgenii Legotckoi
          Evgenii Legotckoi3 мая 2024 г. 0:07
          Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Добрый день. По моему мнению - да, но то, что будет касаться вызовов к функционалу Андроида, может создать огромные трудности.

          Следите за нами в социальных сетях