我尝试在 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”)open: trueout of memory Unable to execute statementinsert : falseout of memory Unable to execute statement

最佳答案

我看到的一些问题应该可以正常工作。
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/

10-09 13:39