c - sqlite3事务的检测

标签 c sqlite locking

当我在 sqlite3 基础上开始事务并插入一些内容时。当然,它上面会有一个锁和一个相应的日志文件。同时,可能还有另一个 C 程序运行一些 sqlite pragmaintegrity_check,但不在“事务中”程序上运行。

想要在执行任何操作之前检测交易。但我没有成功。 sqlite3的源代码中确实有一些inTransaction,但不幸的是它处于不透明的结构中......

所以,请帮助我T_T

最佳答案

不知道我是否理解你的问题,如有错误请指正。您想知道数据库是否被锁定吗?

我在 python 中使用 SQLite,所以也许在 C 中你可以做一些更复杂的事情。我认为 SQLite 在锁定时返回 SQL_BUSY 。您可以针对这种情况定义自己的处理程序。

查看this page ,也许 this one .

如果您收到SQL_BUSY,您可以尝试执行您的操作并重试或执行任何您想要的操作。

关于c - sqlite3事务的检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7420575/

相关文章:

c - 在 Ubuntu 中安装 CodeLite IDE 时出错

c# - 无法找到请求的 .Net Framework 数据提供程序 - SQLite

java - 实体类和记录锁定

c - 同时访问文件。奇怪的锁定行为

c - 奇怪的#define 声明,无法理解它扩展的内容

c - gcc-8 Wstringop-截断

c - 特定代码的输出不正确。 (最大、最小、等级_扫描仪)

android - 从每个类别中至少选择一个?

sql - 如何检查数据库的架构

java - 锁定或同步