use pubs
GO
-- 建立存储过程
create procedure sp_PubsTest
-- 定义三个参数变量,注意第三个,特别标记是用于输出
@au_l
name varchar (20),
@intID int,
@intIDOut int OUTPUT
AS
SELECT @intIDOut = @intID + 1
SELECT *
FROM authors
WHERE au_lname LIKE @au_lname + ''%''
--直接返回一个值
RETURN @intID + 2
<%@ Language=VBScript %>
<%
Dim CmdsP
Dim adoRS
Dim adCmdsPStoredProc
Dim adParamReturnValue
Dim adParaminput
Dim adPar
amoutput
Dim ad
Integer
Dim iVal
Dim oval
Dim adoField
Dim adVarChar
‘这些值在 VB 中是预定义常量,可以直接调用,但在 VBScript 中没有预定义
adCmdsPStoredProc = 4
adParamReturnValue = 4
adParaminput = 1
adPar
amoutput = 2
ad
Integer = 3
adVarChar = 200
iVal = 5
oval = 3
''建一个command对象
set CmdsP = Server.CreateOb
ject("ADODB.Command")
''建立连结
CmdsP.ActiveConnection = "Driver=
{sql Server};server=(local
);Uid=sa;Pwd=;Database=Pubs"
''定义command 对象调用名称
CmdsP.CommandText = "sp_PubsTest"
''设置command调用类型是存储过程 (adCmdsPStoredProc = 4)
CmdsP.CommandType = adCmdsPStoredProc
''往command 对象中加参数
''定义存储过程有直接返回值,并且是个整数,省缺值是4
Cmds
p.parameter
s.Append CmdsP.CreateParameter("RETURN_VALUE",ad
Integer,adParamReturnValue,4)
''定义一个字符型输入参数
Cmds
p.parameter
s.Append CmdsP.CreateParameter("@au_lname",adVarChar,adParaminput,20,"M")
''定义一个整型输入参数
Cmds
p.parameter
s.Append CmdsP.CreateParameter("@intID",adParamInput,iVal)
''定义一个整型输出参数
Cmds
p.parameter
s.Append CmdsP.CreateParameter("@intIDOut",adPar
amoutput,oval)
''运行存储过程,并得到返回记录集
Set adoRS = CmdsP.Execute
''把每个记录打印出来,其中的字段是虚拟的,可以不用管
While Not adoR
s.EOF
for each adoField in adoR
s.Fields
Response.Write adoField.Name & "=" & adoField.Value & "<br>" & vbCRLF
Next
Response.Write "<br>"
adoR
s.MoveNext
Wend
''打印两个输出值:
Response.Write "<p>@intIDOut = “ & Cmds
p.parameters("@intIDOut").Value & "</p>"
Response.Write "<p>Return value = " & Cmds
p.parameters("RETURN_VALUE").Value & "</p>"
''大扫除
Set adoRS = nothing
Set CmdsP.ActiveConnection = nothing
Set CmdsP = nothing
%>