Търсих навсякъде и не мога да разбера какво се обърка.
Искам да мога да поставя на опашка няколко заявки към базата данни и да мога да ги върна обратно, ако някоя заявка се провали. Не можах да накарам това да работи, така че се опитах да намаля проблема до прост пример (започнах транзакция, изпълних две заявки, опитах да върна назад), но дори това не работи.
Този код трябва; започнете транзакция, опитайте се да създадете две таблици и след това бъдете върнати назад, така че да не се показват промени в базата данни.
Извикването на rollback() връща true, така че казва, че работи, но когато погледна в базата данни, таблиците са създадени така или иначе.
Ето моят код:
db = QSqlDatabase.database()
db.transaction()
q = QSqlQuery(db)
q.exec_("create table a ...") #omitted but I have checked they are fully valid queries
q.exec_("create table b ...")
db.rollback()