小巧. 快速. 可靠.
三选一.

SQLite C 接口

关闭数据库连接

int sqlite3_close(sqlite3*);
int sqlite3_close_v2(sqlite3*);

sqlite3_close() 和 sqlite3_close_v2() 函数是 sqlite3 对象的析构函数。如果成功销毁了 sqlite3 对象并释放了所有相关资源,则对 sqlite3_close() 和 sqlite3_close_v2() 的调用将返回 SQLITE_OK

理想情况下,应用程序应该在尝试关闭对象之前 完成 所有 准备好的语句关闭 所有 BLOB 处理程序,并 完成sqlite3 对象关联的所有 sqlite3_backup 对象。如果数据库连接与未完成的准备好的语句、BLOB 处理程序和/或未完成的 sqlite3_backup 对象相关联,则 sqlite3_close() 将保持数据库连接打开并返回 SQLITE_BUSY。如果 sqlite3_close_v2() 被调用时有未完成的准备好的语句、未关闭的 BLOB 处理程序和/或未完成的 sqlite3_backups,则无论如何它都返回 SQLITE_OK,但它不会立即释放数据库连接,而是将数据库连接标记为不可用的“僵尸”,并安排在所有准备好的语句完成、所有 BLOB 处理程序关闭以及所有备份完成后自动释放数据库连接。sqlite3_close_v2() 接口旨在与垃圾回收的宿主语言一起使用,并且析构函数的调用顺序是任意的。

如果在事务打开时销毁了 sqlite3 对象,则该事务将自动回滚。

传递给 sqlite3_close(C)sqlite3_close_v2(C) 的 C 参数必须是 NULL 指针或从 sqlite3_open()sqlite3_open16()sqlite3_open_v2() 获取的 sqlite3 对象指针,并且以前未关闭。用 NULL 指针参数调用 sqlite3_close() 或 sqlite3_close_v2() 是一个无害的无操作。

另请参阅 对象常量函数 列表。