以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 重新加载表数据问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=187675)

--  作者:zcgmxf
--  发布时间:2023/8/3 13:01:00
--  [求助] 重新加载表数据问题
老师,我今天发现一个问题就是不同位置的系统客户端在加载数据的时候不同步。
假设有A/B两台电脑,上面有相同的客户端,操作同一数据库,如果A电脑在登记表 出库 2支,库存表库存数量 100支,数据库查看100支
在B电脑登记表出库5支,在B电脑上新增行后查看库存95支,数据库库存数量95支,但是在A电脑上新增行查看还是100支。
选择窗口用了两种重新加载表的方法都一样。

DataTables("库存表").LoadFilter = "[库存数量] > 0"
DataTables(
"库存表").Load


Dim cm d As New S Q LCom mand
c md.Co n nection Name = "数 据源名称"
cm d.Co mm and Text = "DE LET E F R OM {
库存表} W HE RE [库存数量] > 0"
cm d .Ex e cuteNo nQ uery()

Data Tables
("库存表").L oad()



--  作者:有点蓝
--  发布时间:2023/8/3 13:41:00
--  
任何一台电脑修改数据后,必须保存,之后其它电脑重新加载才能看到新的数据。

另外并发的情况下,是会有时间差的,比如A先加载了数据,100毫秒后B才保存数据,这样A加载的仍然是旧数据。要解决这种情况,一般都要进行二次确认,使用事务(http://www.foxtable.com/webhelp/topics/3312.htm)锁定要修改的行,查询这一行的数量是否足够,如果足够就扣除,不够就退出并提示用户。