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