Foxtable(狐表)用户栏目专家坐堂 → [求助]事务报错


  共有2950人关注过本帖树形打印复制链接

主题:[求助]事务报错

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109505 积分:557193 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/29 14:03:00 [显示全部帖子]

写了什么代码?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109505 积分:557193 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/15 20:36:00 [显示全部帖子]

贴出完整代码

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109505 积分:557193 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/15 21:13:00 [显示全部帖子]

1、开启了事务,那么在任何一个Return返回前都必须提交或者回顾事务
            cmd.BeginTransaction() '开启事务
            cmd.CommandText ="select * from enter_tran where tran_code = '" & Vars("Flow_PrimaryID") & "' and sts = 0"
            dt = cmd.ExecuteReader(True)
            If dt.DataRows.count > 0 Then
                Dim dr As DataRow = dt.DataRows(0)
                _code = dr("tran_code")
                If dr("state") = "2" Then
                    MessageBox.Show("移交单已审批", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Error)
这里必须加上提交或者回顾事务的代码,下面其它代码的Return也一样
                    Return

2、代码调用的其它函数如果有使用sqlCommand的也必须加入到这个事务中,否则可能会出现脏数据甚至死锁。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109505 积分:557193 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/3/16 9:14:00 [显示全部帖子]

6楼2个问题解决了没有,解决了再测试是否还有问题。

这个表有主键吗?是不是视图来的?有没有什么触发器?

这段代码单独放到命令窗口测试有没有问题?
[此贴子已经被作者于2021/3/16 9:14:49编辑过]

 回到顶部