如果 sqlite3_open() 返回错误和有效的数据库连接怎么办?
Posted
技术标签:
【中文标题】如果 sqlite3_open() 返回错误和有效的数据库连接怎么办?【英文标题】:What if sqlite3_open() returns an error AND a valid database connection? 【发布时间】:2013-03-09 16:47:54 【问题描述】:sqlite3_open() 的文档是这样说的:
“通常在 *ppDb 中返回一个数据库连接句柄,即使发生错误。”
这是否意味着如果 sqlite3_open() 返回的不是 SQLITE_OK 和一个非空数据库句柄,那么您在再次尝试 sqlite3_open() 之前欠一个 sqlite3_close()?
如果是这样,这可以解释我遇到的问题,因为数据库被锁定而随机无法打开。
【问题讨论】:
【参考方案1】:是的,如果 sqlite3
连接对象返回为非 null,则需要关闭它。
sqlite3_open() manual 很清楚;
无论打开时是否发生错误,与数据库连接句柄关联的资源都应在不再需要时通过将其传递给 sqlite3_close() 来释放。
至少,如果您不这样做,您将有sqlite3
连接对象本身的内存泄漏,因为sqlite3_close()
会释放该对象以及分配给它的所有资源。
【讨论】:
以上是关于如果 sqlite3_open() 返回错误和有效的数据库连接怎么办?的主要内容,如果未能解决你的问题,请参考以下文章
我需要帮助来验证 jwt 是不是有效或以其他方式创建一个新的,如果发送的令牌不正确,则在 nestjs 中间件中返回错误
通过spring security进行的Active Directory身份验证会返回由LDAP引起的有效用户的错误凭据:错误代码49