Я использую 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 не удалась?