在qt我怎么能成功运行两个查询?

时间:2017-01-17 16:33:42

标签: c++ mysql qt

如果运行一个查询成功执行,如何运行两个查询,那么还必须执行第二个查询,否则应该还原第一个查询更改的值?

QSqlQuery *query=new QSqlQuery(connector.db);

QSqlQuery *query2=new QSqlQuery(connector.db);

此处查询和查询2应该运行或者不应运行任何查询。

1 个答案:

答案 0 :(得分:1)

您需要transaction。使用以下代码,您可以确保它们中的任何一个或不执行任何一个。

QSqlDatabase::database().transaction();

// execute your queries here!    

QSqlDatabase::database().commit();

Documentation

  

如果底层数据库引擎支持事务,QSqlDriver::hasFeature(QSqlDriver::Transactions)将返回true。您可以使用QSqlDatabase::transaction()启动事务,然后使用要在事务上下文中执行的SQL命令,然后使用QSqlDatabase::commit()QSqlDatabase::rollback()。使用事务时,您必须在创建查询之前启动事务。