- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VB 中的事务处理有一下两种方式:
1.
conn.BeginTrans 开始
执行语句
conn.Execute sql
If Err.Number = 0 Then
conn.CommitTrans 提交事務
Else
conn.RollbackTransaction
MsgBox 失败
End If
2.
On Error GoTo err_trans
intTrans = newConn.BeginTrans 开始事务
newConn.Execute sql
newConn.CommitTrans 提交事务
intTrans = 0
newConn.Close 关闭连接
MsgBox OK
exit_trans:
Set newConn = Nothing 释放对象
Exit Sub 退出过程
err_trans: 错误跳到这儿处理
如果是事务处理中出错,则事务回滚
If intTrans = 1 Then
newConn.RollbackTrans
End If
Resume exit_trans
看起来两种方式都没什么问题, 但是在我的项目里使用第一种方式却遇到了
一个很奇怪的错误,大家见 下图:
很明显我使用的是 sql ,不是存储过程,而且我的 sql 在查询分析器里运行
的完全正常,它却说我有误,真是让我百思不得其解。
更加奇怪的是, 这个错误只在项目生成 exe 以后才会冒出来 ,也就是说在开
发阶段,在 VB 工程里面运行的是好好的,一旦到开发 的差不多了,打包生成
exe 文件,生成的过程不会出错,运行到特定代码调用这里的时候才会出错!这
实在是个郁闷的问题,因为 在项目刚开始的时候一般不会生成 exe 文件来测试
运行,而是直接在 VB开发环境下运行, 在这种情况下是运行的好好的, 所以到
了项目后期可着实让我忙乱了好久,一直找不到原因,,,,不知道大家有没有
遇到过
后来我使用了 2 方法,这个就没出问题了, 不过还是有些地方要注意的, 我
在这里提醒一下大家吧,也算是对自己研究的总结:
首先看如下代码:
On Error GoTo err_trans
intTrans = newConn.BeginTrans 开始事务
sql = insert into Sales(dish_id,uid) values (8,2);
insert into Sales(dish_id,uid) values (8,2);
这里面有两句 sql ,在查询分析器里执行都是没有问题的
newConn.Execute sql
newConn.CommitTrans 提交事务
intTrans = 0
newConn.Close 关闭连接
MsgBox OK
exit_trans:
Set newConn = Nothing 释放对象
Exit Sub 退出过程
err_trans: 错误跳到这儿处理
如果是事务处理中出错,则事务回滚
If intTrans = 1 Then
newConn.RollbackTrans
MsgBox false
End If
Resume exit_trans
执行的过程中没遇到任何问题,弹出 OK,下面我们改一下 sql ,将第一句
的 id 值插入字符串 aaaa
sql
文档评论(0)