以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]关于 .RejectChanges()的疑惑 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=61950) |
-- 作者:huangfanzi -- 发布时间:2014/12/22 22:39:00 -- [求助]关于 .RejectChanges()的疑惑 在局域网下使用,服务器的数据库文件中有表A与表C 表A上一些操作会更自动改表B的数据 表A的窗口上有个退出按钮,退出前会提示是否保存表A的操作,如果选择否后,会执行以下代码: DataTables("表A").RejectChanges() DataTables("表C").RejectChanges() 现在的问题来了,有另一个用户在操作表B,这张表上的操作同样也会更改部分表C数据,当表A用户选择不保存退出时,表B用户对表C的修改会不会保留,还是也一样被取消操作了。 现在没局域网条件测试,请老师解答一下,这涉及到我现在一些代码的写法,谢谢!
|
-- 作者:有点甜 -- 发布时间:2014/12/22 22:46:00 -- 每个用户都有一份数据的拷贝,修改数据的时候,都是修改自己电脑的数据,最后保存的时候,才会把数据写回数据库的。
互不影响,但是如果修改了同一行,就以最后保存的为准。 |
-- 作者:huangfanzi -- 发布时间:2014/12/22 22:55:00 -- 明白了,根据这个问题,又有二个延伸问题: 1,表A上进行一些操作后更改了表C的数据后并点了保存表A与表C,表C在之前已经被一用户打开使用,但是这时应该看不到表C的变化(被表A更改后的结果),表C用户如何在不退出系统或退出当前表的前提下看到表C被表A的修改结果,其实也就是刷新一下,这个刷新的代码如何写? 2、表A的操作删除了表C的某一行并保存,表C之前已经用户打开,然后在表A用户点保存之后也点了保存,这时,在数据库里,这一行被删除的数据是不是又被恢复了?
|
-- 作者:有点甜 -- 发布时间:2014/12/23 -- 1、刷新代码:Tables("表a").Load
2、如果删除了,这一行就删除了,保存的时候不会恢复。 |
-- 作者:黄训良 -- 发布时间:2014/12/23 0:18:00 -- 这种情况最好使用事务处理。 |
-- 作者:huangfanzi -- 发布时间: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表上相关记录所做的更改就是点了保存也不会存入数据库,因此相关记录已经锁定了。 昨晚突然想到了在局域网中使用的一些问题,之前一直是单机状态下开发,这些问题没想到过,现在思路有些凌乱,请见谅!
|
-- 作者:有点甜 -- 发布时间:2014/12/23 9:03:00 -- 回复6楼,独占编辑参考
http://www.foxtable.com/help/topics/2295.htm
|