为什么即使在我调用数据库关闭函数后也无法删除Qt中的SQLite数据库?

时间:2013-02-19 01:23:01

标签: c++ sqlite qt

我正在编写一个代码来处理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);

1 个答案:

答案 0 :(得分:2)

我找到了解决方案,只需在关闭连接之前调用query.clear();