1

我正在编写一个代码来使用 SQLite 数据库,数据库的所有代码都可以工作,但最后,当我尝试删除数据库时,数据库文件没有被删除。我调用了close函数,为什么我不能删除数据库?db.isOpen(); 函数返回 false,并且 QFile::remove(path); 也返回假。注意:在 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);
4

1 回答 1

4

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

于 2013-02-19T01:57:31.587 回答