smartdb
smartdb copied to clipboard
内存泄漏,如果打开db之后连续插入数据存在内存泄漏,需要修改database.hpp的prepare和close函数:
bool prepare(const std::string& sql)
{
// 释放上一次的资源,否则内存泄漏
if(statement_){
sqlite3_finalize(statement_);
statement_ = nullptr;
}
code_ = sqlite3_prepare_v2(db_handle_, sql.c_str(), -1, &statement_, nullptr);
return code_ == SQLITE_OK;
}
bool close()
{
if (db_handle_ == nullptr)
{
return true;
}
if(statement_){
sqlite3_finalize(statement_);
statement_ = nullptr;
}
//sqlite3_finalize(statement_);
code_ = close_db_handle();
//statement_ = nullptr;
db_handle_ = nullptr;
return code_ == SQLITE_OK;
}