【发布时间】:2011-02-21 16:58:08
【问题描述】:
我正在使用 QSqlDatabase 访问我的 sqlite3 数据库。
当 INSERT 命令由于没有可用磁盘空间而失败时,回滚也会失败,并且我的日志中会出现下一条消息:
Database error : disk I/O error
Database driver error : Unable to fetch row
Command = INSERT OR FAIL INTO Procedure ( ProcedureUUID, ProcedureGroupUUID, DefaultLocale, Author, CanBeDeleted, VersionMajor, VersionMinor, VersionMaintenance, VersionBuild ) VALUES( :ProcedureUUID, :ProcedureGroupUUID, :DefaultLocale, "User", 1, 0, 0, 0, 0 );
(我正在尝试记录每个事件)。
在我的代码中,我打开一个数据库,启动事务,然后执行查询。如果任何查询失败,我会进行回滚。
我预计每次回滚都会成功,但似乎并非如此。
有人可以解释回滚失败的情况吗? 以及如何调试这个问题。
谢谢
编辑:
会不会是因为第一个SQL命令失败,所以无法回滚?
【问题讨论】:
标签: sql transactions qt4 sqlite rollback