严重问题!

SORROWAPPLE 2003-06-16 04:14:04
请教各位师兄:
在ADO中怎么知道当前记录已被其他用户锁定!
例如锁定类型为保守式锁定,即当记录被打开到游标时此记录就被锁定.
如果此时其他用户访问或更新此条记录,将会出现超时的错误.
关键的问题是:
如何在不等待超时的情况下,可以知道此记录是否被锁定!?
我的超时设定最少也要20秒以上,所以要知道有没有人将记录锁定,要等上20秒,要的时间太长啦!
这个问题真是头疼死啦!

请大家不要再告诉我什么隔离级别的的话啦,既然我能在事务中锁定,当然不会不明白隔离级别,重点是一条记录是否被锁定,能不能不要等到超时,直接就可以了解到!
因为我的程序中,要求是如果一条记录被其他用户处理中(即被锁定),则马上转到处理下一条记录,如果等超时,处理效率太率!
...全文
24 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
leimin 2003-06-16
  • 打赏
  • 举报
回复
select l.spid,o.name as tablename,l.page,v.name as locktype from master..syslocks l,master..spt_values c,sysobjects o
where l.type=v.number and v.type='L' and l.id=o.id

这样就可以获得TABLENAME和LOCKTYPE,你可以在根据这个写一个SP,根据输入TABLENAME来确定LOCK的类型,如果是X OR IX OR UIX..就返回一个信息,然后....

dlkfth 2003-06-16
  • 打赏
  • 举报
回复
up
liuyun2003 2003-06-16
  • 打赏
  • 举报
回复
在MSSQL中,要锁就不会锁一条记录的。你判断锁可以读取系统表syslocks和syslockinfo来知道的。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧