以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  保存和重新加载问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=6158)

--  作者:wqc360
--  发布时间:2010/3/12 11:34:00
--  保存和重新加载问题
我是用SQL外部数据库,在局域网内使用,所以暂时还没有搞动态加载数据。但是多用户是用时,发现一个问题,如有2台都打开项目,先1号对其中数据有修改并存盘, 后2号又对其他数据进行操作并存盘,未执行重新加载数据,是否2号数据会覆盖1号已修改并存盘的事件(因2号还是1号更新前的数据)。
我是否可以用如下代码进行数据保存(在用户切换一些表和窗口的按钮执行以下代码可行吗,先保存数据,再重新加载需要的数据)。 

For Each dt As DataTable In DataTables

    dt.Save()\'保存所有数据

Next


DataTables ("表名").Load \'重新加载数据


--  作者:狐狸爸爸
--  发布时间:2010/3/12 11:35:00
--  
不会覆盖

--  作者:wqc360
--  发布时间:2010/3/12 11:50:00
--  
      1.只要保存的不修改,哪怕以用户是以前加载的过时数据,也不会覆盖因被修改并保存的数据吗。是不是没怎么表达清楚。
假如有某表某列数据为123,用户A和B都打开了项目,两个看到的都是123,如用户A把123改成456并保存,这是数据库应是456,但是用户B还是123,如现在用户B不执行同步数据或重新加载数据,只执行保存,是否会把123重新保存到数据库中而覆盖 掉用户B一修改的456呢。狐爸的意思是说不会吗?
     

     2.保存数据我可以用一下代码吗?

For Each dt As DataTable In DataTables

    dt.Save()\'保存所有数据

Next



--  作者:wqc360
--  发布时间:2010/3/12 11:54:00
--  
一下代码是保存数据和设置吗:
 

Ctype(ApplicationMenu.LeftItems("Save"), RibbonMenu.Button).PerformClick()


--  作者:czy
--  发布时间:2010/3/12 11:58:00
--  
以下是引用wqc360在2010-3-12 11:50:00的发言:
      1.只要保存的不修改,哪怕以用户是以前加载的过时数据,也不会覆盖因被修改并保存的数据吗。是不是没怎么表达清楚。
假如有某表某列数据为123,用户A和B都打开了项目,两个看到的都是123,如用户A把123改成456并保存,这是数据库应是456,但是用户B还是123,如现在用户B不执行同步数据或重新加载数据,只执行保存,是否会把123重新保存到数据库中而覆盖 掉用户B一修改的456呢。狐爸的意思是说不会吗?
     

     2.保存数据我可以用一下代码吗?

For Each dt As DataTable In DataTables

    dt.Save()\'保存所有数据

Next



两人都修改了同一单元格的数据,以后保存的数据为准,我的理解是这样的。

可以这样保存。


--  作者:czy
--  发布时间:2010/3/12 11:59:00
--  
以下是引用wqc360在2010-3-12 11:54:00的发言:
一下代码是保存数据和设置吗:
 

Ctype(ApplicationMenu.LeftItems("Save"), RibbonMenu.Button).PerformClick()


保存设置不会起作用,保存设置只是你自己的系统起作用,其他用户的设置还是原来的。


--  作者:wqc360
--  发布时间:2010/3/12 13:33:00
--  
用户A单元格如未修改保存时(如某单元格为:123),如被用户B修改并保存了(由123改456,A、B用户都在线),这时数据库单元格为456,A用户单元格数据为123,如用户A不对单元格所在行进行修改,保存时,
1.是保存用户A的所有数据(数据库中456变123,不管是否修改或编辑),
2.还是只保存用户A有修改或编辑的的数据。
如是1,那就比较麻烦,多用户使用时,要经常进行保存,同步数据或重新加载数据,已获得最新数据,这样才不至于把别人已修改的数据有改回来。
如是2,那就太好了,只有本用户修改或编辑的数据才执行保存(还有是保存修改的单元格还是行,因不同用户对同行不同单元格进行修改,如以修改行为识别对象进行保存,又会出现第1中的冲突)A用户不管怎么保存,只要不对单元格修改,看到的虽然还是123,数据库始终是456,但在需要计算时,可以同步数据就可以了。
有点不解,请高手解释一下狐表的保存过程,谢谢。
--  作者:czy
--  发布时间:2010/3/12 13:37:00
--  
以更改的数据为准。也就是说会变成456
不会造成冲突,保存时只保存修改过的数据。
--  作者:wqc360
--  发布时间:2010/3/12 14:06:00
--  
这样就好,但是我的项目使用者反映明明改过的或者是这样输入的,怎么今天又不对了,我也觉得奇怪,因为我设置了一些条件列表项目,数据最后是不对的,他们按道理是没法输入的,但录入者答复当是录入是对的(我有条件列表项目),但是最后保存的数据(并不是马上就发现)不对。既然保存如C版所说,那保存逻辑没问题,我再查查其他原因。
另,保存时只保存修改过的数据。是指行还是单元格。
再次谢谢C版
--  作者:blackzhu
--  发布时间:2010/3/12 14:21:00
--  
  我的理解是怎样的,如果同时在编辑同一单元格,我不知道是怎样的.我只知道如果A用户编辑了,保存,就是A的数据,如果B用户跟着A后面修改了同一单元格的数据的话,如保存应该是B,如不保存应该是A的数据.