十四、Qt数据库操作之事务
程序员文章站
2024-01-14 09:29:10
...
案例如下
void transactionDemo()
{
QSqlDatabase conn = QSqlDatabase::addDatabase("QMYSQL");
conn.setHostName("localhost");
conn.setPort(3306);
conn.setDatabaseName("qt_db");
conn.setUserName("root");
conn.setPassword("root");
if (!conn.open())
{
QMessageBox::critical(this, "错误", "连接数据库失败,错误信息如下\n" + conn.lastError().text(),
QMessageBox::Ok, QMessageBox::NoButton);
return;
}
//如数据库驱动支持事务
if (conn.driver()->hasFeature(QSqlDriver::Transactions))
{
//开启事务
conn.transaction();
//更新数据库操作
bool result = updateDb();
if (result)
//提交事务
conn.commit();
else
//回滚事务
conn.rollback();
}
}
若数据库驱动不支持事务,则可使用下面方法开启事务:
QSqlQuery query
query.exec(“START TRANSACTION”)
query.exec(“COMMIT”);
query.exec(“ROLLBACK”);
备注:暂时查询到的是Qt5.12版本,支持 MYSQL 事务处理
下一篇: Collections工具的使用
推荐阅读