脚本宝典收集整理的这篇文章主要介绍了在ASP中调用存储过程的几种方法,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
1&nbs
p;这也是最
简单的方法,两个输入参数,无返回值:
set connection = server.createobject("adodb.connection")
connection.o
PEn someDSN
Connection.Execute "
PRocn
ame
VARvalue1, varvalue2"
'将所有对象清为nothing,释放资
源 connection.close
set connection = nothing
2 如果要返回 Reco
rdset 集:
set connection = server.createobject("adodb.connection")
connection.open someDSN
set rs = server.createobject("adodb.recordset")
rs.Open "Exec procname varvalue1, varvalue2",connection
'将所有对象清为nothing,释放资源
rs.close
connection.close
set rs = nothing
set connection = nothing
3 以上两种方法都不能有返回值,(Recordset除外),如果要得到返回值,需要用Command的方法。
首先说明,返回值有两种。一种是在存储
过程中直接return一个值,就象C和
vb的函数返回值那样;另一种是可以返回多个值,存储这些值的
变量名称需要在调用参数中先行指定。
这个例子要处理多种参数,输入参数,输出参数,返回记录集以及一个直接返回值(够全了吧?)
存储过程如下:
use p
ubs
GO
-- 建立存储过程
create procedure sp_Pubs
test -- 定义三个参数变量,注意第三个,特别标记是用于输出
@au_lname v
Archar (20),
@intID int,
@intIDOut int OUTPUT
AS
SELECT @intIDOut = @intID + 1
SELECT *
From authors
WHERE au_lname LIKE @au_lname + '%'
--直接返回一个值
RETURN @intID + 2
调用该存储过程的asp程序如下:
<%@ Language=VBScript %>
<%
Dim CmdSP
Dim adoRS
Dim adCmdSP
StoredProc
Dim adParamReturnValue
Dim adPar
aminput
Dim adParamOutput
Dim adInteger
Dim iVal
Dim oVal
Dim adoField
Dim adVarChar
‘这些值在 VB 中是预定义常量,可以直接调用,但在 VBScript 中没有预定义
adCmdSPSto
redProc = 4
adParamReturnValue = 4
adParaminput = 1
adParamOutput = 2
adInteger = 3
adVarChar = 200
iVal = 5
oVal = 3
'建一个command对象
set CmdSP = Server.CreateObject("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
CmdSP.Parameters.Append CmdSP.CreateParameter("RETURN_VALUE", adInteger, adParamReturnValue, 4)
'定义一个字符型输入参数
CmdSP.Parameters.Append CmdSP.CreateParameter("@au_lname", adVarChar, adParaminput, 20, "M")
'定义一个
整型输入参数
CmdSP.Parameters.Append CmdSP.CreateParameter("@intID", adInteger, adParamInput, , iVal)
'定义一个整型输出参数
CmdSP.Parameters.Append CmdSP.CreateParameter("@intIDOut", adInteger, adParamOutput, oVal)
'运行存储过程,并得到返回记录集
Set adoRS = CmdSP.Execute
'把每个记录打印出来,其中的字段是虚拟的,可以
不用管
While Not adoRS.EOF
for @R_
360_2428@ adoField in adoRS.Fields
Response.Wr
ITe adoField.Name & "=" & adoField.Value & "<
br>" & vbCRLF
Next
Response.Write "<br>"
adoRS.MoveNext
Wend
'打印两个输出值:
Response.Write "<p>@intIDOut = “ & CmdSP.Parameters("@intIDOut").Value & "</p>"
Response.Write "<p>Return value = " & CmdSP.Parameters("RETURN_VALUE").Value & "</p>"
'大扫除
Set adoRS = nothing
Set CmdSP.ActiveConnection = nothing
Set CmdSP = nothing
%>
此外还有其他方式,稍微偏门一些,以后慢慢再说
本文参考了多篇
文章,这里不一一列出。
脚本宝典总结
以上是脚本宝典为你收集整理的在ASP中调用存储过程的几种方法全部内容,希望文章能够帮你解决在ASP中调用存储过程的几种方法所遇到的问题。
如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。