gpt4 book ai didi

C++:关闭后无法删除sqlite文件

转载 作者:行者123 更新时间:2023-11-30 03:59:14 26 4
gpt4 key购买 nike

我用这些函数编写了一个 sqlite 类:

bool Csqlite::init (string _InFile)
{
if (sqlite3_open_v2(_InFile.c_str (), &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, NULL) == SQLITE_ERROR)
return false;

return true;
}

void Csqlite::quit ()
{
sqlite3_reset (stmt);
sqlite3_clear_bindings (stmt);

sqlite3_close(db);
}

bool Csqlite::execute (string _InOperation)
{
if (sqlite3_prepare_v2 (db, _InOperation.c_str (), _InOperation.size () + 1, &stmt, NULL) != 0)
return false;

if (sqlite3_step (stmt) == SQLITE_ERROR)
return false;

return true;
}

现在,奇怪的是,如果我调用 init,而不调用其他东西 quit,那么我可以删除 Windows 中的本地文件。但是,当我在这两个函数之间调用 execute 并再次尝试删除该文件时,Windows 表示该文件仍处于打开状态。

有什么想法吗?

最佳答案

您忘记释放带有 sqlite3_finalize 的语句.

关于C++:关闭后无法删除sqlite文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27021319/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com