以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于独占式编辑 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=60204) |
|
-- 作者:zeta_123 -- 发布时间:2014/11/20 8:59:00 -- 关于独占式编辑 正在看独占式编辑,看完后有个疑问,如果有个人在编辑表的时候,忘了退出了,那他是不是就一直占着这条信息,别人就一直进不去编辑了?有没有什么方法可以解决这个问题呢? |
|
-- 作者:有点甜 -- 发布时间:2014/11/20 9:03:00 -- 不是有一个强制解锁的么?
5、将表事件BeforSaveDatarow代码设置为: If e.DataRow.RowState = DataRowState.Added Then \'如果是新增行 上述代码在保存行之前,清除此行的编辑者列内容,也就是解锁此行。 你也许会奇怪,为什么新增行可以直接清空编辑者列的内容,但其它行要通过Update语句设置? 6、最后设置BeforeCloseProject事件代码为: Dim cmd As New SQLCommand 这样在关闭项目前,将清除当前用户锁定的全部行。 |
|
-- 作者:zeta_123 -- 发布时间:2014/11/20 9:44:00 -- 上面代码是保存或者退出时执行的,但问题是,如果因为某些原因,他没有点击保存,也没有退出,一直占着这个资源那该怎么办? |
|
-- 作者:有点甜 -- 发布时间:2014/11/20 9:47:00 --
[此贴子已经被作者于2014-11-20 9:46:41编辑过]
|
|
-- 作者:有点甜 -- 发布时间:2014/11/20 9:47:00 -- 做个按钮强制清除
Dim cmd As New SQLCommand |
|
-- 作者:客人 -- 发布时间:2014/11/20 10:08:00 -- 好的,谢谢有点甜 另外一个问题,下面的代码表示新增行也需要独占式编辑,是吗? 5、将表事件BeforSaveDatarow代码设置为: If e.DataRow.RowState = DataRowState.Added Then \'如果是新增行 |
|
-- 作者:有点甜 -- 发布时间:2014/11/20 10:10:00 -- 6楼的代码,意思是,新增行,不需要设置独占,因为此行在没保存之前,是没有保存进数据库,别人是不知道的。 |
|
-- 作者:zeta_123 -- 发布时间:2014/11/20 10:16:00 -- 既然新增行别人看不到,为什么独占式编辑还需要下面代码呢? 4、将表事件DataRowAdding代码设置为: e.DataRow("编辑者") = User.name
|
|
-- 作者:有点甜 -- 发布时间:2014/11/20 10:22:00 -- 为了在startEdit判断,要保持统一。 |
|
-- 作者:zeta_123 -- 发布时间:2014/11/20 10:32:00 -- 明白了!在示例1我觉得没问题。 在示例2中在窗口中实现独占式编辑。也有如下代码,不知怎么理解? e.DataRow("编辑者") = User.name |