@BogBel

Как правильно написать QSqlQuery в Qt?

Вопрос в запросах.
вот моя бдed8cecc337fc45ff9cbd4c20cf9e5cd8.jpg

main:
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    qDebug() << QSqlDatabase::drivers();
    Widget w;
    w.show();

    return a.exec();
}

конструктор виджета:
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
   ui->setupUi(this);
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("D:/Qt projects/History/Base.db");
    if(!db.open())
        qDebug()<<"Cant open";
    QSqlQuery query(db);
            query.exec("select Qestion from History where id=0 and id=1 ");
            bool res=query.prepare("select Qestion from History where id=0 and id=1 ");
            qDebug()<<"res="<<res;
            qDebug()<<"select"<<query.isSelect();
            qDebug()<<"valid"<<query.isValid();
            QString name;

           name = query.value(0).toString();
           qDebug()<<"name::"<<name;
            ui->textEdit->setText(name);
            ui->textEdit->setReadOnly(true);
}

}


вывод к qDebug выглядит так:
Запускается D:\Qt projects\build-History-Desktop_Qt_5_4_1_MinGW_32bit-Debug\debug\History.exe...
("QSQLITE", "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")
res= true
select false
valid false
QSqlQuery::value: not positioned on a valid record
name:: ""
D:\Qt projects\build-History-Desktop_Qt_5_4_1_MinGW_32bit-Debug\debug\History.exe завершился с кодом 0
Не могу понять, бд подключил, запрос написал, а результата нет(
  • Вопрос задан
  • 4757 просмотров
Пригласить эксперта
Ответы на вопрос 2
@vilgeforce
Раздолбай и программист
Зачем query.prepare() после query.exec()?
Попробуйте query.next() после exec()
Ответ написан
@BlackFregat
where id=0 and id=1
никогда не будет верным..
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы