Office中国论坛/Access中国论坛

标题: [讨论]多用户操作,防冲突,解决方法! [打印本页]

作者: duanpeng@    时间: 2005-12-13 19:03
标题: [讨论]多用户操作,防冲突,解决方法!
在单位局域网中用ACCESS项目结合SQL进行有关业务的数据资料管理。

目的:

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

我的解决思路

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

存在的问题:

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

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


作者: tz-chf    时间: 2005-12-13 19:46
系统不是自己会处理吗?
作者: xinbao    时间: 2005-12-14 01:35
多用户时可能处理不太好
作者: zyp    时间: 2005-12-21 00:02
在SQL Server中有事务隔离级别,是通过在select、insert、update、delete语句中加上表提示或直接设定事务的隔离等级来控制。

有表锁定、行锁定、关键字锁定等,因牵涉内容较多,也比较难以理解(本人也正在学习这方面的知识),所以也很难解释清楚,建议找一本专业的SQL server的书参考一下
作者: 白河寒秋    时间: 2006-9-30 23:54
系统自己搞定,操作系统中的"事物"在管理!
作者: bikehome    时间: 2006-10-10 00:58
这个不是系统的责任,应该是作业流程的冲突所造成的,如果对于一条记录多人同时而且多次修改,那么只能说明作业流程非常混乱所造成的!

应该理清流程才是最主要的
作者: qlm    时间: 2006-10-14 16:14
以下是引用bikehome在2006-10-9 16:58:00的发言:


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

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



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

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

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

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

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

要设计相应的预处理程序...非常麻烦。
作者: Sooloom    时间: 2007-6-6 19:29
应该如何处理阿?
作者: kaikai325107    时间: 2007-7-5 18:34
系统自几高定
作者: dujj    时间: 2007-8-20 17:39
学习学习,有什么好的书可以推荐阿
作者: laiguiyou    时间: 2007-8-20 20:25
把窗体的记录锁定属性改为:已编辑的记录即可防止冲突问题
作者: hi-wzj    时间: 2007-8-21 10:02
例如有一张施工单,100件工件,有50件在“车”工序,50件在“钻孔”工序,两者完成工序后可能会同时修改原施工单的完成数量。

流程设计不应该更改施工单,而应增加一个“进度表”专门记录每天各机台的完工状况。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3