如何避免两人同时对同一条记录进行操作---在线等!!!!!!!!!

wuhanman2001 2003-12-22 10:47:13
asp中,有两个操作员,当操作员A打开记录1时,如果操作员B也打开记录1,给操作员B一个提示,如何处理??这里的打开是指点击记录编号,在新页面中显示这个记录的信息,如果有人正在打开这条记录,则给出提示。

如何判断有人正打开某条记录,(注:大概同时有4,5人操作数据)
...全文
70 点赞 收藏 22
写回复
22 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wsqsoft 2003-12-22
可以查询SQL server 的记录锁的资料
回复
wuhanman2001 2003-12-22
字段的方法不太好,因为我打开后还要进行审批等好几个操作,zlm18691859兄的方法复位不好控制,我一刷新就会执行onunload操作,愁!!

兄弟们,今天要解决不了,晚上又得加班了,不好过啊
回复
chen8967 2003-12-22
我现在也用字段判断,如果出现死机或者别的情况,请业务管理人员复位字段!
不可能老死机吧!
回复
关注好方法
回复
iamsangster 2003-12-22
我也遇到这种问题了,如果用个字段来判断的话,遇到断电,或死机时,那字段不就改不过来了。这是个值得探讨的问题。


可以有最高级管理员修改,不过好像只是权宜之计
回复
iamsangster 2003-12-22
最高级管理员只能有一人
回复
leiaming 2003-12-22
begin trans'开始一个事务
commit trans'关闭一个事务
rollback trans'锁定事务
具体是在存储过程中实现。
回复
lzt_6666 2003-12-22
我也遇到这种问题了,如果用个字段来判断的话,遇到断电,或死机时,那字段不就改不过来了。这是个值得探讨的问题。
回复
wuhanman2001 2003-12-22
事务不熟啊,可否举个简单例子?谢过
回复
wuhanman2001 2003-12-22
哦,zlm18691859兄的方法考虑一下,谢谢
回复
jumpnew929 2003-12-22
你用事务吧,可以对操作的记录封锁的
begin trans
commit trans
rollback trans
回复
wuhanman2001 2003-12-22
两人有相同的权限,只是对记录分段操作,如A打开前10条记录,B打开第11至20条记录,当A的10条记录,处理了1条,只剩9条时,自动从B的记录中分一条给A,(刷新时才重新分配记录)(假如这时A刷新了,而B没刷新,则有可能把B的记录分配给A,也有可能AB同时打开同一条记录,因为两个没有同时刷新)
回复
zlm18691859 2003-12-22
不会产生新记录,只是进行更新.
sub window_onunload
window.location="logout.asp?id=<%=id%>"
end sub

logout.asp进行更新操作
回复
zxmout 2003-12-22
在处理的时候,不同的session的权限不同,在纪录里边设置权限字段。
回复
zxmout 2003-12-22
设置权限。
回复
wuhanman2001 2003-12-22
这样处理,关闭页面时,无法将true改为false,而且数据量较大,不停的在产生新记录,这样好象不太优化,如果用application或session应如何处理?
回复
a_zhe_20 2003-12-22
可以在该表中添加一个是否打开的字段

有打开,则为true,反之为false
操作员进入时提示...
回复
xieyj 2003-12-22
使用记录锁和事务:
begin tran
select * from yourtab with(rowlock, holdlock) where id=??
-- do your something ... ....
if @@error <> 0 then
rollback tran
else
commit tran
回复
zorou_fatal 2003-12-22
建议楼主看看
recordset对象的打开数据库方式的几种设定
这个问题不需要这么复杂的。
回复
801190629 2003-12-22
补充:如果检查到操作员为自己,继续操作,并重新留下一个标志:操作员,操作开始时间。
回复
加载更多回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2003-12-22 10:47
社区公告
暂无公告