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);