Foxtable(狐表)用户栏目专家坐堂 → [求助]存储过程


  共有4341人关注过本帖平板打印复制链接

主题:[求助]存储过程

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
[求助]存储过程  发帖心情 Post By:2016/3/2 15:18:00 [只看该作者]

If e.DataCol.name = "SN" Then
    If e.DataRow("体态") = "通用态" Then
        Dim dr1 As DataRow = DataTables("库存通用态表").Find("物料编码 = '" & e.DataRow("物料编码") & "'")
        If dr1 IsNot Nothing Then
            dr1("库存数量") = dr1("库存数量") + 1
            dr1("可用数量") = dr1("可用数量") + 1
        Else
            Dim dr2 As DataRow = DataTables("库存通用态表").AddNew
            dr2("物料编码") = e.DataRow("物料编码")
            dr2("物料名称") = e.DataRow("物料名称")
            dr2("库位类别") = e.DataRow("库位类别")
            dr2("体态") = e.DataRow("体态")
            dr2("库存数量") = 1
            dr2("可用数量") = 1
        End If
这段代码我同事说有潜在的风险。(如果多任务并发进行)
比如这句dr1("可用数量") = dr1("可用数量") + 1
当设备SN进来,第一次读可用数量,读出来是100,这时还没进行加1和赋值的动作。恰巧另外一个客户端把可用数量给改为了80.这时我去加1,然后赋值。是在读出来100的基础上加1然后赋值的,最后可用数量变为了101了。而非81了。
如何避免这种情况。
是用存储过来来实现吗?怎么弄?

 回到顶部
总数 37 1 2 3 4 下一页