SQLITE内存不足无法执行语句

时间:2014-02-15 11:35:17

标签: c++ qt sqlite

我尝试在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: true

out of memory Unable to execute statement

insert : false

out of memory Unable to execute statement

1 个答案:

答案 0 :(得分:2)

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

QSqlQuery createQuery;

将其更改为以下内容,您应该是好的

QSqlQuery createQuery(DB);


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

所以不要这样:

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

这样做

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

这应该让事情有效。