c - SQLite / C API - 关闭数据库 - 是否有官方文档错误?
问题描述
在 API 调用的官方 SQLite 的 C API 文档 ( www ) 中,sqlite3_close()
我可以阅读以下内容:
关闭数据库连接
int sqlite3_close(sqlite3*); int sqlite3_close_v2(sqlite3*);
sqlite3_close()
和sqlite3_close_v2()
例程是对象的析构函数sqlite3
。如果 对象被成功销毁并且所有相关资源都被释放,则调用sqlite3_close()
并sqlite3_close_v2()
返回。SQLITE_OK
sqlite3
如果数据库连接与未完成的准备好的语句或未完成的
sqlite3_backup
对象相关联,sqlite3_close()
则将保持数据库连接打开并返回SQLITE_BUSY
。
这两个带返回值int
的函数如何返回字符串SQLITE_OK
和SQLITE_BUSY
?这是不可能的。我在哪里可以捕获函数返回的字符串?我正在考虑像这样使用sqlite3_errmsg()
(www):
do{
sqlite3_close(my_db);
}
while(strcmp(sqlite3_errmsg(my_db),"SQLITE_BUSY") == 0);
这会导致大量 API 调用,这可能会给数据库带来压力。有没有人有更好的解决方案?
解决方案
推荐阅读
- python - 如何在 KivyMD、Python 中制作下拉菜单
- android - 在 MainActivity(根 @Composable)中显示来自任何子可组合(Jetpack Compose)的 Snackbar
- python - 试图将嵌套的 json 数据提取到垂直列表中
- bash - 在linux中对du命令进行排序
- javascript - 如何在 Next.js 的 pages 文件夹中获取动态路由路径?
- windows - 如何找到单词 A 和单词 B 之间的字符串?
- android - 如何在 ModalDrawer (Jetpack compose) 中更改抽屉尺寸?
- jquery - 使用 laravel 8 在刀片视图中未定义的变量
- vb.net - 如何在 vb.net 中显示应用程序的版本号?
- git - 尽管已添加到 gitignore,但文件仍显示在 github 中