先上代码:
db=QSqlDatabase::addDatabase("QOCI");
db.setDatabaseName("NP");
db.setHostName("192.168.3.134");
db.setPassword("1234");
db.setUserName("SYSTEM");
if(db.driver()->hasFeature(QSqlDriver::Transactions))
{
qDebug()<<"has driver";
}
if(db.open()){
qDebug()<<"has open";
}
db.transaction();
QSqlQuery query;
query.exec("insert into TEST VALUES(1,1,1)");
query.exec("insert into TEST VALUES(2,2,2)");
if(!db.commit()){
qDebug()<<query.lastError().text();
if(!db.rollback())
{
qDebug()<<query.lastError();
}
}
编译提示 has driver has open
问题是我这个代码无法回滚,而且我发现当执行到query.exec()后,数据实际上已经入库了,请问有没有大神知道是怎么回事?怎么样才能正确回滚呀?
db=QSqlDatabase::addDatabase("QOCI");
db.setDatabaseName("NP");
db.setHostName("192.168.3.134");
db.setPassword("1234");
db.setUserName("SYSTEM");
if(db.driver()->hasFeature(QSqlDriver::Transactions))
{
qDebug()<<"has driver";
}
if(db.open()){
qDebug()<<"has open";
}
db.transaction();
QSqlQuery query;
query.exec("insert into TEST VALUES(1,1,1)");
query.exec("insert into TEST VALUES(2,2,2)");
if(!db.commit()){
qDebug()<<query.lastError().text();
if(!db.rollback())
{
qDebug()<<query.lastError();
}
}
编译提示 has driver has open
问题是我这个代码无法回滚,而且我发现当执行到query.exec()后,数据实际上已经入库了,请问有没有大神知道是怎么回事?怎么样才能正确回滚呀?
