Foxtable(狐表)用户栏目专家坐堂 → 求教网络版的问题:A用户删除数据后B用户可以继续操作


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

主题:求教网络版的问题:A用户删除数据后B用户可以继续操作

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


加好友 发短信
等级:二尾狐 帖子:531 积分:4155 威望:0 精华:0 注册:2012/11/26 21:54:00
求教网络版的问题:A用户删除数据后B用户可以继续操作  发帖心情 Post By:2013/10/4 9:23:00 [只看该作者]

例如B用户加载了"表A"的一条数据,而A用户在B用户加载之后删除了该条数据

目前B用户的Datatable中还存在这条数据,B用户可以通过代码 tables("表A").Current()修改数据,经过认真测试,执行代码tables("表A").Current.save()保存该表时,如果数据库中没有该条数据,则Table中会自动删除该数据,但是没有提示,我的解决方式是BeforeSaveDataRow事件中加入下面代码:
If e.DataRow.RowState = DataRowState.Added  OrElse e.DataRow.RowState = DataRowState.Detached Then    
Else
    Dim cmd As New SQLCommand
    cmd.C
    cmd.CommandText = "Select count(*) from {STAllocate} where  _identify = " & e.DataRow("_identify")
    Dim s As Integer = cmd.ExecuteScalar
    If s <1 Then
        e.Cancel = True
        MessageBox.Show("该数据已被删除,保存无效")
    End If
End If

以上方法比较麻烦,望各位高手赐教。
[此贴子已经被作者于2013-10-4 10:18:09编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/10/4 9:30:00 [只看该作者]

只加载自己加载的数据,别人看不到您的数据,也就不会出现多用户同时加载一条记录!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/10/4 9:34:00 [只看该作者]

 只能是在保存之前检查一下数据库是否还存有该条记录,如果不存在,就不允许改行保存。

 

 只能是这样了,通过sql语句查找比较主键_Identify


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/10/4 9:34:00 [只看该作者]

凡是可以新增、修改的表,都应该有日期列、操作员列,会省去很多麻烦,带来很多便利。

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


加好友 发短信
等级:二尾狐 帖子:531 积分:4155 威望:0 精华:0 注册:2012/11/26 21:54:00
  发帖心情 Post By:2013/10/4 9:44:00 [只看该作者]

以下是引用程兴刚在2013-10-4 9:30:00的发言:
只加载自己加载的数据,别人看不到您的数据,也就不会出现多用户同时加载一条记录!

程版,我用的是SQL数据库,2个用户同时加载同一条数据到各自的DataTable中是很有可能的


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


加好友 发短信
等级:二尾狐 帖子:531 积分:4155 威望:0 精华:0 注册:2012/11/26 21:54:00
  发帖心情 Post By:2013/10/4 9:49:00 [只看该作者]

以下是引用有点甜在2013-10-4 9:34:00的发言:

 只能是在保存之前检查一下数据库是否还存有该条记录,如果不存在,就不允许改行保存。

 

 只能是这样了,通过sql语句查找比较主键_Identify

谢谢【有点甜】的支招,这个方法不错,不过会要增加很多代码啊


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/10/4 10:08:00 [只看该作者]

代码不多,就一个查询而已,写在表的(全局表)的beforesavedatarow事件。
 
参考
http://www.foxtable.com/help/topics/0696.htm
http://www.foxtable.com/help/topics/0696.htm
[此贴子已经被作者于2013-10-4 10:10:26编辑过]

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


加好友 发短信
等级:二尾狐 帖子:531 积分:4155 威望:0 精华:0 注册:2012/11/26 21:54:00
  发帖心情 Post By:2013/10/4 10:22:00 [只看该作者]

以下是引用有点甜在2013-10-4 10:08:00的发言:
代码不多,就一个查询而已,写在表的(全局表)的beforesavedatarow事件。
 
参考
http://www.foxtable.com/help/topics/0696.htm
http://www.foxtable.com/help/topics/0696.htm
[此贴子已经被作者于2013-10-4 10:10:26编辑过]

继续感谢,因为我的表比较多,所以需要的设置改类代码的地方会比较多。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/10/4 10:24:00 [只看该作者]

代码写在全局表事件里,只需要写一次


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


加好友 发短信
等级:二尾狐 帖子:531 积分:4155 威望:0 精华:0 注册:2012/11/26 21:54:00
  发帖心情 Post By:2013/10/4 10:47:00 [只看该作者]

以下是引用有点甜在2013-10-4 10:24:00的发言:

代码写在全局表事件里,只需要写一次

请指教,因为狐表中的Table名称不能跟数据库中的表名一一对一,例如,A/B/C三个表有可能同时引用数据库中的表名"TEST",能通过语句自动找到对应的数据库的表名吗?


 回到顶部
总数 14 1 2 下一页