欧文3和利拉德3:ASP中存储过程如何调用?
来源:百度文库 编辑:高校问答 时间:2024/05/11 17:55:36
/ * 存 储 过 程 例 程 */
CREATE PROCEDURE sp_CheckPass
@CHKName VARCHAR(30),@CHKPass
VARCHAR(30),@ISValid CHAR(8) OUTPUT
AS
IF EXISTS(SELECT UserName FROM Users
WHERE UserName=@CHKName AND UserPwd=@CHKPass)
SELECT @ISVaid="pass"
ELSE
SELECT @ISValid="Invalid"
----存 储 过 程 接 收 两 个 输 入 参 数, 输 入 参 数@CHKaName 向 存 储 过 程 传 递 一 个 用 户 名,@CHKPass 向 存 储 过 程 传 递 一 个 密 码, 如 果 有 用 户 拥 有 指 定 的 密 码, 输 出 参 数 将 返 回 "pass", 否 则, 返 回"Invalid"。
----现 在 我 们 可 以 在CheckPass.asp 中 调 用 存 储 过 程sp_CheckPass 了。
CheckPass.asp
< ! - - #INCLUDE VIRTUAL=
"ADOVBS.inc" - - >
' 包 含VBSCRIPT 的 常 量 定 义 文 件
< %
Set DataConn=Sever.CreateObject
("ADODB.Connection") ' 建 立 连 接 对 象
Dataconn.Open"DSN=user;SERVER=APP_SERVER;
UID=sa;PWD=;APP=Microsoft(R) Developer Studio;
WSID=APP_SERVER;Regional=Yes"
Set cmdTemp=Sever.CreateObject
("ADODB.Command") ' 建 立 命 令 对 象
Set cmdTemp.ActiveConnection=DataConn
cmdTemp.CommandType=adCMdStoredProc
' 指 定 要 执 行 的 是 一 个 存 储 过 程
cmdTemp.CommandText="sp_CheckPass"
' 存 储 过 程 名 称
Set tmpFirstParam=cmdTemp.CreateParameter
("UserName",adVarChar,adParamIntput,30)
' 创 建 输 入 参 数 对 象
cmdTemp.Parameters.Append.tmpFirstParam
' 把 参 数 加 到 参 数 集 合
Set tmpSecondParam=cmdTemp.CreateParameter
("UserPwd",adVarChar,adParamInput,30)
cmdTemp.ParaMeters.Append tmpSecondParam
Set tmpThirdParam=cmdTemp.CreateParameter
("RetValue",adChar,adParamOutput,8)
' 创 建 返 回 参 数 对 象
cmdTemp.Parameters.Append tmpThirdParam
cmdTemp("UserName")=Request.FORM("UserName")
' 取 得 输 入 参 数
cmdTemp("UserPwd")=Request.FORM("UserPwd")
cmdTemp.Execute ' 执 行 存 储 过 程
% >
The Check Result is < %=cmdTemp("RetValue") % >
' 输 出 返 回 值
< %
DataConn.Close ' 关 闭 数 据 库 连 接
% >
// 用 户 输 入 界 面
< HTML >
< HEAD >< TITLE >Registration Page< /TITLE >< /HEAD >
< H2 > 请 输 入 用 户 名 和 密 码:< /H2 >
< FORM METHOD="POST" ACTION="CheckPass.asp" >
< p > 用 户 名:
< input name="UserName" type="TEXT" >
< /p >
< p > 密 码:
< input name="UserPwd" type="PASSWORD" >
< input type="submit" name="submit" value=
" 确 定" >
< /p >
< /FORM > < /BODY >
< /HTML >