Qt-Sql INSERT语句无效

Qt Sql INSERT statement has no effect

本文关键字:无效 语句 INSERT Qt-Sql      更新时间:2023-10-16

我在Windows上使用Qt 4.8。在这个简单的程序中,INSERT语句似乎不起作用。基本调试语句不显示任何错误字符串。谷歌帮不了我。在类似的问题上存在。

sql.h

#ifndef SQL_H
#define SQL_H
#include<QtSql>
#include<QtGui>
#include<QDebug>
class Unit
{
public:
    Unit()
    {
        QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
        db.setDatabaseName("x");
        bool ok = db.open();
        QSqlQuery query;
        query.exec("create table vidyarthi(section integer(10), unit integer(10), details varchar(500));");

        query.exec("insert into vidyarthi values( 1,2,'Hello world');");
        qDebug()<<query.lastError().databaseText(); // prints "" means empty
        qDebug()<<query.lastError().text(); // prints  "" means empty

        QSqlTableModel *tmodel=new QSqlTableModel;
        tmodel->setTable("vidyarthi");
        qDebug()<<tmodel->rowCount(); // prints 0

        QTableView *tv=new QTableView;
        tv->setModel(tmodel);
        tv->show();
    }
};
#endif // SQL_H

main()函数:-

#include "widget.h"
#include <QApplication>
#include<QtCore>
#include<sql.h>
int main(int argc, char *argv[])
{
   QApplication a(argc, argv);
    Unit unit;
   return a.exec();
}

我的输出TableView实际上只有标题(表的列),但没有行。

您必须调用QSqlTableModel::select()来用数据填充模型。

这将在QSqlTableModel类的详细描述中进行解释。