sqlite3_busy_timeout的默认值是多少?

时间:2014-08-14 23:14:53

标签: sqlite transactions

这似乎应该很容易找到,但我不会在任何地方看到它。如果我打开一个sqlite连接并开始一个事务而没有通过调用sqlite3_busy_timeout来指定超时,那么使用什么默认值?或者这会以某种方式导致未定义的行为?这种方法的documentation不能说。

我的特定用例是与iOS捆绑在一起的版本,但我猜测答案在不同平台上几乎相同。

1 个答案:

答案 0 :(得分:7)

如果未设置sqlite3_busy_timeout()sqlite3_busy_handler()且作者处于有效状态,则step()会立即返回SQLITE_BUSY

注意:在某些情况下会返回SQLITE_IOERR_BLOCKED 另见:Register A Callback To Handle SQLITE_BUSY Errors在第二段中陈述

  

如果忙碌回叫为NULL,则在遇到锁定时会立即立即返回SQLITE_BUSYSQLITE_IOERR_BLOCKED。如果忙回调不是NULL,则可以使用两个参数调用回调。