如果繁忙回调为NULL,则在遇到锁定时立即返回SQLITE_BUSY。如果繁忙回调不是NULL,那么可能会用两个参数调用回调。
在旧版界面中,返回值将是SQLITE_BUSY,SQLITE_DONE,SQLITE_ROW,SQLITE_ERROR或SQLITE_MISUSE。
至少“毫秒”睡眠后,处理程序返回0,这会导致sqlite3_step()返回SQLITE_BUSY。 使用小于或等于零的参数调用此例程会关闭所有繁忙的处理程序。
(5)SQLITE_BUSY SQLITE_BUSY结果代码表示数据库文件由于其他数据库连接(通常是单独进程中的数据库连接)的并发活动而无法写入(或在某些情况下被读取)。
如果另一个线程已经在互斥体中,则sqlite3_mutex_enter()将会阻塞,并且sqlite3_mutex_try()将返回SQLITE_BUSY。
SQLITE_LOCKED此返回代码与SQLITE_BUSY类似,表示数据库已被锁定。但锁的来源是对sqlite_exec的递归调用。
xLock在成功时返回SQLITE_OK,如果无法获取锁,则返回SQLITE_BUSY,否则返回SQLITE_IOERR_RDLOCK。
如果BEGINIMMEDIATE操作成功,则该事务中的后续操作将不会因SQLITE_BUSY错误而失败。 在同一数据库连接上没有隔离操作 SQLite提供了独立数据库连接操作之间的隔离。
如果检查点分别返回SQLITE_BUSY或不是,则将1或0写入memP3。将检查点之后的WAL中的页面数写入memP3+1,并且在检查点完成之后将已检查点的WAL中的页数写入memP3+2。
换句话说,如果对sqlite3_wal_checkpoint_v2()的等效调用返回SQLITE_OK,则第一列为0,如果等效调用返回SQLITE_BUSY,则第一列为0。

扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2026 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059
粤公网安备44030502008569号
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号
