时间:2021-05-25
1这也是最简单的方法,两个输入参数,无返回值:
setconnection=server.createobject("adodb.connection")
connection.opensomeDSN
Connection.Execute"procnamevarvalue1,varvalue2"
'将所有对象清为nothing,释放资源
connection.close
setconnection=nothing
2如果要返回Recordset集:
setconnection=server.createobject("adodb.connection")
connection.opensomeDSN
setrs=server.createobject("adodb.recordset")
rs.Open"Execprocnamevarvalue1,varvalue2",connection
'将所有对象清为nothing,释放资源
rs.close
connection.close
setrs=nothing
setconnection=nothing
3以上两种方法都不能有返回值,(Recordset除外),如果要得到返回值,需要用Command的方法。
首先说明,返回值有两种。一种是在存储过程中直接return一个值,就象C和VB的函数返回值那样;另一种是可以返回多个值,存储这些值的变量名称需要在调用参数中先行指定。
这个例子要处理多种参数,输入参数,输出参数,返回记录集以及一个直接返回值(够全了吧?)
存储过程如下:
usepubs
GO
--建立存储过程
createproceduresp_PubsTest
--定义三个参数变量,注意第三个,特别标记是用于输出
@au_lnamevarchar(20),
@intIDint,
@intIDOutintOUTPUT
AS
SELECT@intIDOut=@intID+1
SELECT*
FROMauthors
WHEREau_lnameLIKE@au_lname+'%'
--直接返回一个值
RETURN@intID+2
调用该存储过程的asp程序如下:
<%@Language=VBScript%>
<%
DimCmdSP
DimadoRS
DimadCmdSPStoredProc
DimadParamReturnValue
DimadParaminput
DimadParamOutput
DimadInteger
DimiVal
DimoVal
DimadoField
DimadVarChar
‘这些值在VB中是预定义常量,可以直接调用,但在VBScript中没有预定义
adCmdSPStoredProc=4
adParamReturnValue=4
adParaminput=1
adParamOutput=2
adInteger=3
adVarChar=200
iVal=5
oVal=3
'建一个command对象
setCmdSP=Server.CreateObject("ADODB.Command")
'建立连结
CmdSP.ActiveConnection="Driver={SQLServer};server=(local);Uid=sa;Pwd=;Database=Pubs"
'定义command对象调用名称
CmdSP.CommandText="sp_PubsTest"
'设置command调用类型是存储过程(adCmdSPStoredProc=4)
CmdSP.CommandType=adCmdSPStoredProc
'往command对象中加参数
'定义存储过程有直接返回值,并且是个整数,省缺值是4
CmdSP.Parameters.AppendCmdSP.CreateParameter("RETURN_VALUE",adInteger,adParamReturnValue,4)
'定义一个字符型输入参数
CmdSP.Parameters.AppendCmdSP.CreateParameter("@au_lname",adVarChar,adParaminput,20,"M")
'定义一个整型输入参数
CmdSP.Parameters.AppendCmdSP.CreateParameter("@intID",adInteger,adParamInput,,iVal)
'定义一个整型输出参数
CmdSP.Parameters.AppendCmdSP.CreateParameter("@intIDOut",adInteger,adParamOutput,oVal)
'运行存储过程,并得到返回记录集
SetadoRS=CmdSP.Execute
'把每个记录打印出来,其中的字段是虚拟的,可以不用管
WhileNotadoRS.EOF
foreachadoFieldinadoRS.Fields
Response.WriteadoField.Name&"="&adoField.Value&"<br>"&vbCRLF
Next
Response.Write"<br>"
adoRS.MoveNext
Wend
'打印两个输出值:
Response.Write"<p>@intIDOut=“&CmdSP.Parameters("@intIDOut").Value&"</p>"
Response.Write"<p>Returnvalue="&CmdSP.Parameters("RETURN_VALUE").Value&"</p>"
'大扫除
SetadoRS=nothing
SetCmdSP.ActiveConnection=nothing
SetCmdSP=nothing
%>
此外还有其他方式,稍微偏门一些,以后慢慢再说
本文参考了多篇文章,这里不一一列出。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
ASP调用带参数存储过程的几种方式选择自hxfwsk的Blog关键字存储过程出处作者:讨饭猫ASP调用带参数存储过程的几种方式最近有很多的朋友问到调用存储过程的
本文实例讲述了asp.net中调用存储过程的方法。分享给大家供大家参考,具体如下:一、建立并调用一个不带参数的存储过程如下:CREATEPROCEDURE全部学
本文实例讲述了asp.net中IDataParameter调用存储过程的实现方法,是asp.net数据库程序设计中非常实用的技巧。分享给大家供大家参考。具体实现
在SQLServer数据库的维护或者Web开发中,有时需要在存储过程或者作业等其他数据库操作中调用其它的存储过程,下面介绍其调用的方法。 在SQLServ
本文实例讲述了php中调用执行mysql存储过程然后返回由存储过程返回的值,分享给大家供大家参考。具体分析如下:调用存储过程的方法.a。如果存储过程有IN/IN