CREATE PROCEDURE lock_record1 @user_id int AS select * from login with (HOLDLOCK) where id=@user_id ****由于别的统计可能用到该记录所以只能放置共享锁。****** go CREATE PROCEDURE lock_record2 @user_id int AS SET LOCK_TIMEOUT 0 update login set lock_bz=1 where id=@user_id SET LOCK_TIMEOUT -1 go 在你的PB应用程序中(由于我对PB不熟,只能这样) 调用lock_record2
if 失败 begin print '不允许两次登陆!' return end endif BEGIN TRANSACTION 调用lock_record1 放共享锁 保持该连接始终有效
@user_id int
AS
select * from login with (HOLDLOCK) where id=@user_id
****由于别的统计可能用到该记录所以只能放置共享锁。******
go CREATE PROCEDURE lock_record2
@user_id int
AS
SET LOCK_TIMEOUT 0
update login set lock_bz=1 where id=@user_id
SET LOCK_TIMEOUT -1
go 在你的PB应用程序中(由于我对PB不熟,只能这样)
调用lock_record2
if 失败
begin
print '不允许两次登陆!'
return
end
endif BEGIN TRANSACTION 调用lock_record1 放共享锁 保持该连接始终有效
..... 程序结速时再END TRANSACTION 我在VB/vfp+server2000下通过