存貯過程(SQL樣版)
今天發個SQL存貯過程給大家認識
CREATEPROCEDURElogin_verify
(
@community_idint,--拿值
@usernamevarchar(20),
@passwordvarchar(40),
@resulttinyintoutput
)
AS
setnocountON
declare@service_deadline_datesmalldatetime,@community_setting_max_online_countint---定義一個變量為短日期格式
select@community_setting_max_online_count=community_setting_max_online_count,@service_deadline_date=service_deadline_datefromcommunity_infowherecommunity_id=@community_id--這裡是求最大登錄人數
ifdatediff(d,@service_deadline_date,getdate())>10--其實這個是限制用戶的使用期,求當前日期與庫中的記錄日期如時大於10天,則返回@result=11
begin
set@result=11--超過使用期
return
end
if(selectcount(*)fromonline_userwhere=@community_setting_max_online_count">community_id=@community_id)>=@community_setting_max_online_count--根據庫中的記錄設定與當前人數比較
begin
set@result=10--超出在線人數限制--返回@result=10
return
end
declare@stamiaint,@last_update_stamia_datesmalldatetime,@level_idint--定義變量整型短日期型整型
declare@useridint,@user_roleint
select@userid=userid,@user_role=user_role,@stamia=stamia,@last_update_stamia_date=last_update_stamia_date,@level_id=level_idfromuser_infowhereusername=@usernameandpassword=@passwordandcommunity_id=@community_idanduser_type=0
--從用戶信息表中,將一些信息寫入到定義的三個變量中
if@useridisnotnull----如果@userid不變null值
begin--用戶名和密碼校驗成功
set@result=1--檢驗成功
return
end
else
begin
set@result=0---登錄失敗
end
setnocountOFF
GO
我們給上面的過程取個名login_verify叫做
寫成是ASP代碼中調用安全認證的地方
'''事先已經定義好conn
Setcmd.ActiveConnection=conn
cmd.CommandText="login_verify"
cmd.CommandType=&H0004
@community_idint,--拿值
@usernamevarchar(20),
@passwordvarchar(40),
@resultint
cmd.Parameters.Appendcmd.CreateParameter("@community_id",3)
cmd.Parameters.Appendcmd.CreateParameter("@username",200)