sql server 阻塞
我用PB10+SQL SERVER 2000 写了一个程序,要求可以多用户可以同时登录使用系统,但当前一个用户登录后,后面一个用户单击"登录"按钮后就不动了,要在前一个用户退出系统或是进入系统做一些其它操作(如查询数据,新增数据)后面一个用户才可以登录系统.后来在企业管理器里面查了一下,好像是阻塞的原因,请问该如何解决?或者说不是阻塞的原因.还有一个现象就是我写了另外一个多用户同时使用没有问题,使用的是本地数据库.前面有问题的是使用的别人的数据库.这样看来,是不是数据库设置的问题,请各位高人给我分析一下
[解决办法]
declare Roy_lock cursor forselect db_name(dbid),0,blockedfrom master..sysprocesses awhere Blocked>0 and not exists(select 1 from Master..Sysprocesses where blocked=a.spid)union select db_name(dbid),spid,blockedfrom master..sysprocesses awhere Blocked>0declare @DBName sysname,@spid bigint,@Blocked bigintopen Roy_lockfetch next from Roy_lock into @DBName,@spid,@Blockedwhile @@fetch_status=0begin if @spid=0 print N'鎖定數據庫:'+@DBName+' 語句:' else print N'鎖定數據庫:'+@DBName+' 進程SPID:'+rtrim(@spid)+' 語句:' dbcc inputbuffer(@Blocked)fetch next from Roy_lock into @DBName,@spid,@Blockedendclose Roy_lockdeallocate Roy_lock
[解决办法]
看来楼上版主也不怎么样哦,技术还没有更新,还是查Master..Sysprocesses这个表
[解决办法]
很有可能是PB代码的问题,查看一下登录过程中,对用户表的使用情况,
应该是没有及时释放锁,提交事务或ADO控件的参数不正确.
[解决办法]