以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]关于并发冲突的问题请教。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=31318)

--  作者:ericsky
--  发布时间:2013/4/12 20:32:00
--  [求助]关于并发冲突的问题请教。
问题一:
针对帮助中《工作流和并发冲突》一节内容请教:

Dim r As Row = Tables("表A").Current
r.
DataRow.Load() \'重新加载此行的数据
If
r.IsNull("标记") Then
   
Dim cmd as New SQLCommand
    cmd.CommandText =
"Update {表A} Set 标记 = -1 Where 标记 Is Null And [_Identify] = " & r("_Identify")

由于网络延迟等原因,会不会出现两个或者多人同时作出标记为空的判断,同时进行操作。有没有这种可能性?如果有的话,哪怕是再低的概率,对于数据管理来说也是不允许的。
是不是更应该从业务流程的编排上尽量避免多人同时操作的情况?

问题二:

如果是网络作业程序的开发,sql是不是更具有速度效率的优势,应该尽量使用,比如说,以下这两段代码,sql的代码的更好,还是两者都一样?

Dim r As Row = Tables("表A").Current
r.
DataRow.Load() \'重新加载此行的数据
If
 r.IsNull("标记"Then
    
Dim cmd as New SQLCommand 
    cmd.CommandText = "Update {表A} Set 标记 = -1 Where 标记 Is Null And [_Identify] = " & r("_Identify")
end if

Dim r As Row = Tables("表A").Current
r.
DataRow.Load() \'重新加载此行的数据
If
 r.IsNull("标记"Then
   r("标记") = -1
   r.save()
end if

在下没有编程基础,问题可能看起来比较粗浅的低级,还请各位老师不吝赐教,谢谢!


--  作者:jianjingmaoyi
--  发布时间:2013/4/12 20:41:00
--  
一切皆有可能 没有绝对。但是 毫秒之差 应该可以忽略不计的吧。