[原创]用户登录存储过程

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

CREATE PROCEDURE Prc_Ad_Login

@AdName varchar(32),

@AdPwd nchar(32),

@Count int output,

@Err varchar(64) output

AS

if exists(select intsuid from sysuser where varsuname=@AdName)

begin

declare @suid int

declare @dteErrs datetime

declare @npwd nchar(32)

declare @Lock bit

declare @intErr int

declare @Errpart int

declare @ErrCount int

select @suid=intsuid, @dteErrs=dteErr,@intErr=intErrCount,@npwd=narsupwd,@lock=bitLock from sysuser where varsuname=@Adname

select @ErrCount=intsuerrcount,@Errpart=intsuerrminute from sysbasic

if(@npwd=@Adpwd)

begin

if(@Lock=1)

begin

select @Count=2

select @Err='你的帐户已被锁定,请联系站长!'

end

else

begin

select @Count=0

end

end

else

begin

if(@Lock=0)

begin

if(datediff(n,@dteErrs,getdate())<@Errpart)

begin

if(@intErr<@ErrCount)

begin

update sysuser set intErrCount=intErrCount+1,dteErr=getdate() where intsuid=@suid

if(@intErr=(@ErrCount-1))

begin

select @Count=4

select @Err='登录错误过多,你的帐号被系统暂时锁定!'

end

else

begin

select @Count=1

select @Err='用户名或密码错误!'

end

end

else

begin

update sysuser set dteErr=getdate() where intsuid=@suid

select @Count=3

select @Err='你的帐号在一定时间内不允许登录!'

end

end

else

begin

update sysuser set dteErr=getdate(),intErrCount=1 where intsuid=@suid

select @Count=1

select @Err='用户名或密码错误!'

end

end

end

end

else

begin

select @Count=1

select @Err='用户名或密码错误!'

end

GO

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航