Qt数据库查询之事务操作
2024-09-07 05:41:19
在做借书系统的时候,用到了事务操作,不会使用qt中事务操作怎么写,查了一些博客帖子,并不起作用,后来发现,在进行事务成功判断时,出现问题,正确代码如下
if(QSqlDatabase::database().transaction()){
bool res1,res2;
query.prepare("update booklist set borrowNum=?,restNum=? where bookId=?");
query.bindValue(,++borrownum);
query.bindValue(,--restnum);
query.bindValue(,bookId);
res1=query.exec();
//qDebug()<<"insert "<<res1; query.prepare("insert into recordlist(bookId,bookName,borrowPeople,borrowTime,backTime,\
backState) values(?,?,?,?,?,?)");
query.bindValue(,bookId);
query.bindValue(,bookName);
query.bindValue(,userName);
query.bindValue(,borrowTime);
query.bindValue(,"");
query.bindValue(,);
res2=query.exec();
//qDebug()<<query.lastError(); //qDebug()<<"insert "<<res2;
if(res1&&res2){
if(!QSqlDatabase::database().commit()){
QMessageBox::critical(this,"Error","操作失败,将要回滚");
if(!QSqlDatabase::database().rollback()){
QMessageBox::critical(this,"Error","回滚失败");
}
}else{
doShowBackResult();
//qDebug()<<"show ";
}
}else{
qDebug()<<query.lastError();
QMessageBox::critical(this,"Error","操作失败,将要回滚");
if(!QSqlDatabase::database().rollback()){
QMessageBox::critical(this,"Error","回滚失败");
qDebug()<<QSqlDatabase::database().lastError();
}
} }
最新文章
- chattr和lsattr
- HDU-1466 计算直线的交点数 经典dp
- javascript平时小例子③(setInterval使用1)
- 如何使用AutoIT完成单机测试
- 图解javascript中this指向
- asp.net后台编写 loading效果
- Linux makefile教程之总述二[转]
- javascript笔记——cookie解析
- [转载]Unity3D 访问Access数据库
- translate函数使用
- Struts2内部执行过程
- spring-boot 多线程
- 逆袭之旅DAY14.东软实训.Oracle.多表连接、分组函数、子查询
- 过滤器中获取form表单或url请求数据
- 012_iTerm2 快捷键大全
- R读取excel文件
- DSSM(DEEP STRUCTURED SEMANTIC MODELS)
- CAD和GIS绘制图形分析
- 探寻C++最快的读取文件的方案 ——C++ IO优化
- C#调用Oracle存储过程
热门文章
- OpenGL位图变形问题
- IOS Modal(切换另外控件器方式)
- Aizu 2301 Sleeping Time(概率,剪枝)
- Memory Usage Performance Guidelines
- python __getattr__ __setattr__
- 设置RichTextBox控件的文本的对齐方式
- AngularJs学习笔记-组件生命周期
- Bootstrap 警告框(Alert)插件
- UITableView 优化总结
- Xcode Warning: “no rule to process file