【发布时间】:2018-04-16 03:43:39
【问题描述】:
我试图在 SQLite 中获取已执行查询的大小,但是当我使用 last 并尝试使用 last 时,它总是错误的
这是我正在尝试执行的代码
void createDB() {
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE","CREATE_CON");
db.setDatabaseName("C:/Desktop/TestDb.db3");
db.open();
QSqlQuery q(db);
q.exec("CREATE TABLE IF NOT EXISTS Test(testCol TEXT PRIMARY KEY);");
}
int entries() {
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE","SELECT_CON");
db.setDatabaseName("C:/Desktop/TestDb.db3");
db.open();
QSqlQuery q(db);
q.exec("SELECT * FROM Test;");
if(q.last() == false) {
qDebug()<<q.lastError().text();
qDebug()<<db.lastError().text();
}
return q.at()+1;
}
我得到的错误文本是空的,所以我不知道我做错了什么。
我可以很好地创建数据库,这样我的数据库实例就可以正常工作了。
操作系统:Windows 10
我正在使用:Qt 5.10.1
编译器:MinGW
【问题讨论】:
-
如何创建表?
-
你打开数据库了吗?你的代码很模糊,请提供minimal reproducible example
-
我刚试了一下,它可以正常工作,如果不提供minimal reproducible example,您的问题将落入题外话“为什么这段代码不起作用?”
-
你什么时候调用createDB()?
-
@eyllanesc 我在启动程序时调用 createDB() 函数,当我按下按钮时调用 entries() 函数。