| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1709 人关注过本帖
标题:数据共享访问问题,是VFP的漏洞?还是程序编写问题?
只看楼主 加入收藏
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
结帖率:73.33%
收藏
已结贴  问题点数:20 回复次数:6 
数据共享访问问题,是VFP的漏洞?还是程序编写问题?
一个客户端锁定了一条记录,执行了删除命令,删除成功,表单界面上这条记录也消失了。就在此时,另一个客户端执行的操作将记录定位到刚刚被第一个客户端删除的记录上,定位成功。此时,第一个客户端的表单界面上运行了refresh,刚刚被删除的记录又出现了!
我发了一个视频,描述了这个问题,望大家帮忙!
问题描述.rar (3.36 MB)
搜索更多相关主题的帖子: 客户端 记录 删除 VFP 访问 
2020-04-18 18:13
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:20 
上锁成功---刷新数据---处理数据---保存数据---解锁
2020-04-18 18:41
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
收藏
得分:0 
SELECT * from 工序 where 工序大类id=工序大类.id into cursor curExist
IF RECCOUNT()>0
    =MESSAGEBOX('该工序大类已经包含工序记录,删除这些工序记录之前,不能删除。',0,'提示')
    RETURN
ENDIF
BEGIN TRANSACTION
SELECT 工序大类
DELETE
IF TABLEUPDATE(0,.t.)=.f.
    ROLLBACK
    =MESSAGEBOX('其他用户正在锁定工序大类表的当前记录,稍候重试。',0,'提示')
    RETURN
ENDIF
END TRANSACTION
thisform.tmrDelLock.Enabled=.t.
thisform.Refresh
2020-04-18 18:47
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
收藏
得分:0 
这是左侧表格中删除列中命令按钮的CLICK代码。麻烦帮忙看看哪里不完善?
2020-04-18 18:48
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
收藏
得分:0 
如果第二个客户端不进行定位到第一个客户端上删除的记录上的操作,就不会出现这种情况,就确实删除掉了。
2020-04-18 18:51
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
收藏
得分:0 
我为了尽可能保证不出现两个客户端操作同一条记录的情况,在操作员试图定位到一条记录时,都是先进行锁定,如果锁定不成功,就提示锁定失败,自动定位到后面的某条可以锁定成功的记录上。这样,所有的客户端在同一个时刻,就不会同时处理同一条记录。否则,一个客户端定位到某一条工序大类记录上(比如冲压工序大类),另一个客户端已经把冲压工序大类删除了,第一个客户端不知情,还在向这个冲压工序大类下面添加它所包含的工序,这样就不知道会是一种什么样的结果了吧
2020-04-18 18:57
qiuxingce
Rank: 2
等 级:论坛游民
帖 子:118
专家分:93
注 册:2014-1-17
收藏
得分:0 
不好意思,是自己编写的程序问题,客户端A删除了那条工序大类,客户端B执行定位或添加命令时,又添加上了那条工序大类名称。
2020-04-19 06:43
快速回复:数据共享访问问题,是VFP的漏洞?还是程序编写问题?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017689 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved