Jan. 2, 2019, 10:07 a.m.

Как получить данные из 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 "" Скажите пожалуйста, как мне получить эти данные?

10% refund of hotel reservation amount on Booking
10% refund of hotel reservation amount on Booking
We offer a link with a 10% return on the amount of the order when booking a hotel through Booking
4

так работает

        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;
0
query.next();

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

0
R

просто потрібно викликати 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()));
        }
0

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

0

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Last comments
June 24, 2019, 10:23 a.m.
Евгений Легоцкой

Хорошо, ну будут проблемы помимо того, что касается статей, то не стесняйтесь задавать вопросы на форуме.
МБ
June 24, 2019, 10:21 a.m.
Михаил Булатов

Извиняюсь, все работает(из-за невнимательности).
June 24, 2019, 9:52 a.m.
Евгений Легоцкой

Придётся делать ещё сигнал в дочернем qml и пробрасывать через коннекты и обработчики. А вообще нужно смотреть конкретный код и что вы пытаетесь сделать. Так что лучше будет, если вы зад...
June 21, 2019, 8:31 a.m.
Ruslan Polupan

Вот моя строка по которой все отлично сработало %cqtdeployer% -bin c:/CentralMposKeys/CentalMposKeys.exe -qmake c:/Qt/5.12.2/mingw73_64/bin/qmake.exe
June 21, 2019, 8:24 a.m.
Андрей Янкович

Возможно кому то пригодится сqtdeployer для windows работает точно так же как и для Linux разница лишь в команде запуска Linux: cqtdeployer Windows: %cqtdeployer...
Now discuss on the forum
June 24, 2019, 2:36 p.m.
Михаиллл

Нашел проект подключения к вебсокету.Но по моему адресу не могу подключиться.Нужно ли для этого использовать библиотеки?Вы не знаете адрес вебсокета, на котором можно проверить с...
June 24, 2019, 2:07 p.m.
Евгений Легоцкой

Я пока даже не знаю, а какой код самого подключения? использовали ожидание на подключение? Так делали? socket->connectToServer("market");if (socket->waitForConnected(1000)) ...
June 24, 2019, 1:19 p.m.
IscanderChe

// widget.cpp#include "widget.h"#include <QTableView>#include <QVBoxLayout>#include "checkboxdelegate.h"#include "comboboxdelegate.h"#include "mytableview.h"#include <QSqlD...
June 24, 2019, 11:16 a.m.
BlinCT

Хорошо, с этим понятно. Вот есть такой набор каких то кнопок. Цифры отображают в каком порядке должен менятся фокус.1. Как правильнее сделать отображение активного обьекта...
e
June 24, 2019, 10:58 a.m.
evgenm27

Спасибо за ответ, буду пробовать
Looking for a Job?
10,000.00 руб. - 15,000.00 руб.
Нужен помощник для создания API.
Moscow, Moscow, Russia
25,000.00 руб. - 30,000.00 руб.
Разработчик Qt/C++
Barnaul, Altai Krai, Russia

For registered users on the site there is a minimum amount of advertising

EVILEG
About
Services
Join us
© EVILEG 2015-2019
Recommend hosting TIMEWEB