如果sqlite3_open()返回错误和有效的数据库连接怎么办?

时间:2013-03-09 16:47:54

标签: sqlite

sqlite3_open()的文档说明了这一点:

“即使发生错误,通常也会在* ppDb中返回数据库连接句柄。”

这是否意味着如果sqlite3_open()在再次尝试sqlite3_open()之前返回除SQLITE_OK之外的其他内容以及非空数据库句柄,那么您应该使用sqlite3_close()?

如果是这样,这可以解释我遇到的问题,因为它被锁定,随机数据库无法打开。

1 个答案:

答案 0 :(得分:3)

是的,如果sqlite3连接对象返回为非null,则需要关闭它。

sqlite3_open() manual非常清楚;

  

打开时是否发生错误,应该通过在不再需要时将其传递给sqlite3_close()来释放与数据库连接句柄相关联的资源。

至少,如果不这样做,你将会有sqlite3连接对象本身的内存泄漏,因为sqlite3_close()释放了该对象和分配给它的任何资源。