Несколько запросов к БД в рамках одной транзакции
Как правильно выполнить запросы в рамках одной транзакции?
db->getDatabase().transaction();
QString str_error;
QSqlQuery qry;
//** 1
qry.prepare("INSERT ...");
if (qry.exec())
str_error = str_error + qry.lastError().text();
//** 2
qry.prepare("INSERT ...");
if (qry.exec())
str_error = str_error + qry.lastError().text();
//** 3
qry.prepare("INSERT ...");
if (qry.exec())
str_error = str_error + qry.lastError().text();
if (str_error.isEmpty())
db->getDatabase().commit();
else
db->getDatabase().rollback();
... к примеру если во втором запросе ошибка, то в любом случае выполняются 1 и 3.
Источник: Stack Overflow на русском