设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 7165|回复: 11
打印 上一主题 下一主题

[讨论]多用户操作,防冲突,解决方法!

[复制链接]
跳转到指定楼层
1#
发表于 2005-12-13 19:03:00 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
在单位局域网中用ACCESS项目结合SQL进行有关业务的数据资料管理。

目的:

由于库中的某表的一条记录在同一时间可能有多个用户同时在操作(修改、删除),如何能保证A用户在操作(第一个提取该记录数据者)时不被B用户修改(甚至通过ADO查询提取),当有这种情况时并提示B用户稍后进行。

我的解决思路

当A用户得到数据时在一个〔临时表〕中标记该记录(表示此记录我正在操作)。当B或C在提取要操作的记录时,首先要检查〔临时表〕我查找的记录是否被标记,如果有标记则提示不能修改,如果没有标记则正常进行修改,并对该记录作好标记,以防其他用户修改。

存在的问题:

由于对记录修改前要检索该记录在临时表中的标记,并对其中的标记进行判断,所以在处理速度或效率上不高(如果我有几十个用户)。

========希望大家有什么更好的方法或思路请多多指教

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
12#
发表于 2007-8-21 10:02:14 | 只看该作者
例如有一张施工单,100件工件,有50件在“车”工序,50件在“钻孔”工序,两者完成工序后可能会同时修改原施工单的完成数量。

流程设计不应该更改施工单,而应增加一个“进度表”专门记录每天各机台的完工状况。
11#
发表于 2007-8-20 20:25:31 | 只看该作者
把窗体的记录锁定属性改为:已编辑的记录即可防止冲突问题
10#
发表于 2007-8-20 17:39:26 | 只看该作者
学习学习,有什么好的书可以推荐阿
9#
发表于 2007-7-5 18:34:00 | 只看该作者
系统自几高定
8#
发表于 2007-6-6 19:29:00 | 只看该作者
应该如何处理阿?
7#
发表于 2006-10-14 16:14:00 | 只看该作者
以下是引用bikehome在2006-10-9 16:58:00的发言:


这个不是系统的责任,应该是作业流程的冲突所造成的,如果对于一条记录多人同时而且多次修改,那么只能说明作业流程非常混乱所造成的!

应该理清流程才是最主要的



没错要 理清流程,尽量避免冲突。这样可以减少这种情况发生,不过有时候对应某一记录相关的记录,可能有很多人在

编辑,例如有一张施工单,100件工件,有50件在“车”工序,50件在“钻孔”工序,两者完成工序后可能会同时修改原施工单的完成数量。这时候就要想办法处理冲突。(完成数量在明细中就不需考虑这一点,我只想说明冲突还是有可能发生的。)

我认为作标记比较安全。我现在设计的东东就想用这个方法.

暂时不知道效率如何,感觉不出来。

不过采用作标记的方法,在遇到意外退出时,有可能无法消除该标记,造成该记录被永远锁定,

要设计相应的预处理程序...非常麻烦。
6#
发表于 2006-10-10 00:58:00 | 只看该作者
这个不是系统的责任,应该是作业流程的冲突所造成的,如果对于一条记录多人同时而且多次修改,那么只能说明作业流程非常混乱所造成的!

应该理清流程才是最主要的
5#
发表于 2006-9-30 23:54:00 | 只看该作者
系统自己搞定,操作系统中的"事物"在管理!
4#
发表于 2005-12-21 00:02:00 | 只看该作者
在SQL Server中有事务隔离级别,是通过在select、insert、update、delete语句中加上表提示或直接设定事务的隔离等级来控制。

有表锁定、行锁定、关键字锁定等,因牵涉内容较多,也比较难以理解(本人也正在学习这方面的知识),所以也很难解释清楚,建议找一本专业的SQL server的书参考一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-23 03:29 , Processed in 0.095190 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表