try
{
qDebug()<<connector.db.transaction();
QSqlQuery *query=new QSqlQuery(connector.db);
query->prepare("UPDATE partstore SET Name =? ,ID=?,SellingPrice=?, Quantity=? WHERE ID=?");
query->addBindValue(ui->lineEdit_Name->text());
query->addBindValue(ui->lineEdit_ID->text());
query->addBindValue(ui->lineEdit_SP->text());
query->addBindValue(ui->lineEdit_Quantity->text());
query->addBindValue(prevID);
QSqlQuery *query2=new QSqlQuery(connector.db);
query2->prepare("UPDATE partstock SET ID=? WHERE ID=?");
query2->addBindValue(ui->lineEdit_ID->text());
query2->addBindValue(prevID);
qDebug()<< connector.db.commit();
if(!query->exec())
{
throw 1;
}
qDebug()<<"q1executed";
throw 1;
if(!query2->exec())
{
throw 1;
}
qDebug()<<"q2executed";
prevID=ui->lineEdit_ID->text();
ID=ui->lineEdit_ID->text();
}
catch (...)
{
qDebug()<<"Executrion failed";
qDebug() <<connector.db.rollback();
}
使用throw 1;在查询之间应该回滚事务但它不是,为什么? 我在两个查询之间使用throw 1来检查回滚是否正常工作并且回滚不起作用但是执行失败被调试。