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如果使用未完成的准备语句、未关闭的 BLOB 处理程序和/或未完成的 sqlite3_backups 调用 sqlite3_close_v2(),它返回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() 是无害的空操作。

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