按网上的方法:
if(QSqlDatabase::database().driver()->hasFeature(QSqlDriver::Transaction s))
{ //先判断该数据库是否支持事务操作
if(QSqlDatabase::database().transaction()) //启动事务操作
{
//下面执行各种数据库操作
QSqlQuery query;
query.exec("insert into comdig values ('01','1')");
query.exec("insert into comdig values ('02','2')");
query.exec("insert into comdig values ('03')";
query.exec("insert into comdig values ('04','4')");
if(!QSqlDatabase::database().commit())
{
qDebug() << QSqlDatabase::database().lastError(); //提交
if(!QSqlDatabase::database().rollback())
qDebug() << QSqlDatabase::database().lastError(); //回滚
}
}
}
第三语句是失败的 但第一、二、四语句还是写进了数据库 最后的两个if()判断根本就没进去
我想要的是执行Sql语句时如果出现错误 所有的执行内容全部回滚 请问有什么方法呃