gpt4 book ai didi

c++ - SQLITE 内存不足无法执行语句

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:10:25 26 4
gpt4 key购买 nike

我尝试在 qt 中使用 sqlite,但遇到错误。

qDebug() << QSqlDatabase::drivers();
QSqlDatabase DB = QSqlDatabase::addDatabase("QSQLITE");
DB.setDatabaseName("/Volumes/MAJID/majid/Naminic/db0.db");
QSqlQuery createQuery;
qDebug()<< "open: " << DB.open();
createQuery.exec("CREATE TABLE contact(name,tell)");
qDebug() << createQuery.lastError().text();

qDebug() << "insert : " << createQuery.exec("insert into contact(name,tell) values('a','b')");
qDebug() << createQuery.lastError().text();

这是调试的输出:

(“QSQLITE”, “QODBC3”, “QODBC”)

打开:true

内存不足无法执行语句

插入:假

内存不足无法执行语句

最佳答案

我看到的几个问题应该可以解决这个问题。
1.创建时需要将数据库对象传递给QSqlQuery。
下面一行是错误的

QSqlQuery createQuery;

改成下面这样就可以了

QSqlQuery createQuery(DB);


2.您需要在创建 QSqlQuery 对象之前打开数据库。如果用它初始化 QSqlQuery 对象,则需要打开与数据库的连接。

所以不要这样:

QSqlQuery createQuery(DB);
qDebug()<< "open: " << DB.open();

这样做

qDebug()<< "open: " << DB.open();
QSqlQuery createQuery(DB);

这应该能让事情正常进行。

关于c++ - SQLITE 内存不足无法执行语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21796961/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com