Foxtable(狐表)用户栏目专家坐堂 → [求助]关于 .RejectChanges()的疑惑


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

主题:[求助]关于 .RejectChanges()的疑惑

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


加好友 发短信
等级:五尾狐 帖子:1105 积分:8967 威望:0 精华:0 注册:2014/10/25 11:24:00
[求助]关于 .RejectChanges()的疑惑  发帖心情 Post By:2014/12/22 22:39:00 [只看该作者]

在局域网下使用,服务器的数据库文件中有表A与表C
表A上一些操作会更自动改表B的数据
表A的窗口上有个退出按钮,退出前会提示是否保存表A的操作,如果选择否后,会执行以下代码:
DataTables("表A").RejectChanges()
DataTables("表C").RejectChanges()

现在的问题来了,有另一个用户在操作表B,这张表上的操作同样也会更改部分表C数据,当表A用户选择不保存退出时,表B用户对表C的修改会不会保留,还是也一样被取消操作了。

现在没局域网条件测试,请老师解答一下,这涉及到我现在一些代码的写法,谢谢!

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


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

 每个用户都有一份数据的拷贝,修改数据的时候,都是修改自己电脑的数据,最后保存的时候,才会把数据写回数据库的。

 

 互不影响,但是如果修改了同一行,就以最后保存的为准。


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


加好友 发短信
等级:五尾狐 帖子:1105 积分:8967 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2014/12/22 22:55:00 [只看该作者]

明白了,根据这个问题,又有二个延伸问题:
1,表A上进行一些操作后更改了表C的数据后并点了保存表A与表C,表C在之前已经被一用户打开使用,但是这时应该看不到表C的变化(被表A更改后的结果),表C用户如何在不退出系统或退出当前表的前提下看到表C被表A的修改结果,其实也就是刷新一下,这个刷新的代码如何写?
2、表A的操作删除了表C的某一行并保存,表C之前已经用户打开,然后在表A用户点保存之后也点了保存,这时,在数据库里,这一行被删除的数据是不是又被恢复了?

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


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

1、刷新代码:Tables("表a").Load

 

2、如果删除了,这一行就删除了,保存的时候不会恢复。


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


加好友 发短信
等级:五尾狐 帖子:1100 积分:8985 威望:0 精华:0 注册:2014/3/15 14:36:00
  发帖心情 Post By:2014/12/23 0:18:00 [只看该作者]

这种情况最好使用事务处理。

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


加好友 发短信
等级:五尾狐 帖子:1105 积分:8967 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2014/12/23 8:50:00 [只看该作者]

根据老师的指导我说下以下的操作思路,老师看下是否正确:
A用户在A表上的某个操作锁定了C表上某一行,以便阻止用户再编辑此行,例如A表是原料入库表,C表是原料入库通知表,当某原料入库后,不得再修改此原料的通知记录,在A表锁定C表前,C表用户已经打开了C表,此时,相关的记录是可以编辑的,现在有一个问题:
C用户在修改其实已经被锁定的哪条记录时,在修改前如何有效率的判断此条还能不能被编辑,总不能在此行被选择中就执行datatables("表C").load  ??
另一个极端情况,在A用户锁定C表相关记录前,C用户正在编辑这一即将被A用户锁定的记录,对于这种情况,难道要在DataColChanging里加入laod代码?这好像更没效率
或者以上情况是不是根本不会出现,是不是当A用户把C表相关记录锁定并保存后,C表上相关记录所做的更改就是点了保存也不会存入数据库,因此相关记录已经锁定了。

昨晚突然想到了在局域网中使用的一些问题,之前一直是单机状态下开发,这些问题没想到过,现在思路有些凌乱,请见谅!

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


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

 回复6楼,独占编辑参考

 

http://www.foxtable.com/help/topics/2295.htm

 


 回到顶部