Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共4 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:网络环境下并发冲突处理

1楼
jxkqf 发表于:2010/5/7 8:36:00
网络情况下多用户操作同一张数据表,如何实现某一用户编缉某行数据就锁定,编缉完本行后解锁以使其他用户可以继续编缉?用代码吗?如何实现?

按贺老六指示,我查看了帮助中的网络环境下的工作流和并发冲突处理,但我不希望有窗体,直接在数据表中操作。
2楼
狐狸爸爸 发表于:2010/5/7 8:39:00

这种情况,至少得有两个按钮:开始编辑、结束编辑,不愿意窗体,就将这两个按钮做在菜单中。

3楼
jxkqf 发表于:2010/5/7 8:57:00
可否在表属性的startedit事件中输入如下代码:
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")
    If
cmd.ExecuteNonQuery <> 1 Then
'防止并发冲突,上面的条件是很关键的
        
 MessageBox.Show("其他用户已经抢先处理此行!")
    End
If
ElseIf
r("标记") = -1 Then
    Messagebox.Show(
"其他用户正在处理此行!")
End If
4楼
狐狸爸爸 发表于:2010/5/7 9:00:00
每个单元格来一次这样的操作,效率可能低了点,你可以测试一下,如果速度能够接受,那也未尝不可。
共4 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03906 s, 2 queries.