我正在编写一个代码来处理SQLite数据库,数据库的所有代码都可以工作,但最后,当我尝试删除数据库时,数据库文件不会被删除。我已经调用了close函数,为什么我不能删除数据库呢? db.isOpen();函数返回false,并且QFile :: remove(path);也返回false。 注意:在Windows资源管理器中,我只能在关闭程序窗口后删除数据库。
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
QString path = "path_to_db";
db.setDatabaseName(path);
if(db.open())
{
qDebug() << "Opened";
qDebug() << path;
}
else
{
qDebug() << db.lastError();
return a.exec();
}
QSqlQuery query(db);
//code to work with the database
db.close();
qDebug() << db.isOpen();
qDebug() << QFile::remove(path);
答案 0 :(得分:2)
我找到了解决方案,只需在关闭连接之前调用query.clear();
。