数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
[原创]用户登录存储过程

作者:未知 来源:月光软件站 加入时间:2005-6-5 月光软件站

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




相关文章

相关软件