sqlite3_open()的文档说明了这一点:
“即使发生错误,通常也会在* ppDb中返回数据库连接句柄。”
这是否意味着如果sqlite3_open()在再次尝试sqlite3_open()之前返回除SQLITE_OK之外的其他内容以及非空数据库句柄,那么您应该使用sqlite3_close()?
如果是这样,这可以解释我遇到的问题,因为它被锁定,随机数据库无法打开。
答案 0 :(得分:3)
是的,如果sqlite3
连接对象返回为非null,则需要关闭它。
打开时是否发生错误,应该通过在不再需要时将其传递给sqlite3_close()来释放与数据库连接句柄相关联的资源。
至少,如果不这样做,你将会有sqlite3
连接对象本身的内存泄漏,因为sqlite3_close()
释放了该对象和分配给它的任何资源。