用linux c++如何保证commit成功提交事务??在线等高手解决!
时间:2011-09-27
来源:互联网
作者: garping 发布时间: 2011-09-27
你用的COMMIT是OCI自带的COMMIT方法么?那应该是提交到数据库里的。
不能完全保证事务成功提交到数据库里,只能在每次COMMIT时,进行判断。
如果提交没有成功,记错误日志。
作者: yixilan 发布时间: 2011-09-27
我用的是OCI自带的COMMIT方法,请问如何判断每次commit返回参数,请列出具体代码看看,谢谢!
作者: garping 发布时间: 2011-09-27
我用的是提交数据库的OCITransCommit方法,不是直接的commit
对于OCITransCommit方法,返回值有如下:
OCI_SUCCESS,OCI_SUCCESS_WITH_INFO,OCI_NEED_DATA,OCI_NO_DATA之类的;
你可以查查你的commit方法有哪些返回参数。
作者: yixilan 发布时间: 2011-09-27
Stmt->setSQL(strsql);
count=Stmt->executeUpdate();
Conn->commit();
Conn->terminateStatement(Stmt);
请问OCITransCommit()可以替换为commit()吗?
作者: garping 发布时间: 2011-09-27
另外,你这里的commit不是OCI自己的方法,你不是通过一个类对象Conn来调用的嘛?
你的commit是类Conn里封装的一个方法。
你得深入到类Conn里仔细看了。
我估计哈,这个类Conn->commit()方法里,实际上调用的还是OCITransCommit()
呵呵,你自己找找吧。
作者: yixilan 发布时间: 2011-09-27
Connection *Conn;
Statement *Stmt;
Env = Environment::createEnvironment(Environment::OBJECT);
Conn = Env->createConnection(user, pwd, strconn_string);
Stmt = Conn->createStatement();
Stmt->setSQL(strsql);
count=Stmt->executeUpdate();
Conn->commit();
Conn->terminateStatement(Stmt);
以上就是源程序的主要代码,就这么简单
作者: garping 发布时间: 2011-09-27
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28