SQLITE 内存不足 无法执行语句
SQLITE out of memory Unable to execute statement
我尝试在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. 创建数据库对象时,您需要将它传递给 QSqlQuery。
以下行是错误的
QSqlQuery createQuery;
将其更改为以下内容,您应该很好
QSqlQuery createQuery(DB);
2. 您需要在创建 QSqlQuery 对象之前打开数据库。 如果使用数据库初始化 QSqlQuery 对象,则需要打开与数据库的连接。
所以取而代之的是:
QSqlQuery createQuery(DB);
qDebug()<< "open: " << DB.open();
这样做
qDebug()<< "open: " << DB.open();
QSqlQuery createQuery(DB);
这应该让事情顺利进行。
在设置查询(db)之前打开数据库对我有用。将此添加到头部。
if(!db.isOpened()) db.open();
if(db.isOpenError()) return false;
相关文章:
- 如何及时执行if语句?
- 获取上次执行的返回语句的行
- 如何仅在父循环的所有迭代都为真时才执行嵌套的 if 语句?
- 表单显示对话框函数错误,并且不执行下面的语句
- 如何知道调试时执行了哪个语句
- 在可变函数调用中执行一次语句
- 在多个对象上执行同一语句的零成本抽象
- 我怎样才能接受输入作为双精度值并执行 IF ELSE 语句
- c++:if 语句无法正常运行,并继续执行无效输出
- 为什么 cout 语句在传递指向函数的指针时没有执行?
- c++ IF 语句执行,但添加 ELSE 会显示错误
- C 程序如果功能中的语句不执行.在逻辑上似乎是错误的
- 当您希望在Arduino Uno编程中同时执行不同函数时,使用什么代码/语句
- OR 语句执行所有评估
- C++ Switch 语句在中断后执行
- 强制执行C++语句顺序
- SQLITE 内存不足 无法执行语句
- 如何在c++中执行语句
- 如何使用c++/python程序在终端中运行程序,然后在该程序中执行语句
- QODBCResult::exec: 无法执行语句:"[Microsoft][ODBC SQL Server Driver]COUNT 字段不正确或语法错误