编程渣王爽 2007-11-22
代码如下:
CREATE PROCEDURE login_verify ( @community_id int, --拿值 @username varchar(20), @password varchar(40), @result tinyint output ) AS set nocount ON declare @service_deadline_date smalldatetime,@community_setting_max_online_count int ---定义一个变量为 短日期格式 select @community_setting_max_online_count=community_setting_max_online_count,@service_deadline_date=service_deadline_date from community_info where community_id=@community_id --这里是求最大登录人数 if datediff(d,@service_deadline_date,getdate())>10 --其实这个是限制用户的使用期,求当前日期与库中的记录日期如时大于10天,则返回@result =11 begin set @result=11 --超过使用期 return end if (select count(*) from online_user where =@community_setting_max_online_count">community_id=@community_id)>=@community_setting_max_online_count --根据库中的记录设定与当前人数比较 begin set @result=10 --超出在线人数限制 --返回@result=10 return end declare @stamia int,@last_update_stamia_date smalldatetime,@level_id int --定义变量 整型 短日期型 整型 declare @userid int ,@user_role int select @userid=userid,@user_role=user_role,@stamia=stamia,@last_update_stamia_date=last_update_stamia_date,@level_id=level_id from user_info where username=@username and password=@password and community_id=@community_id and user_type=0 --从用户信息表中,将一些信息写入到定义的三个变量中 if @userid is not null ----如果@userid 不变null值 begin --用户名和密码校验成功 set @result=1 --检验成功 return end else begin set @result=0 ---登录失败 end set nocount OFF GO