标签: c sqlite locking
当我在sqlite3基础上开始一个事务并插入一些东西时。当然,它会有一个锁定和一个相应的日志文件。同时,可能有另一个C程序运行一些sqlite pragma integrity_check,但不能运行“in transaction”。
我想要在做任何事情之前检测交易。但我没有成功。在sqlite3的源代码中确实有inTransaction,但不幸的是它是一个不透明的结构....
inTransaction
所以,请帮帮我T_T
答案 0 :(得分:1)
我不知道我是否理解你的问题,如果我错了,请纠正我。你想知道数据库是否被锁定了吗?
我在python中使用SQLite,所以也许在C中你可以做更复杂的事情。我认为SQLite在被锁定时会返回SQL_BUSY。您可以为此情况定义自己的处理程序。
SQL_BUSY
结帐this page,也许this one。
如果获得SQL_BUSY,您可以尝试执行操作并重试或执行任何操作。