欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【ASP调用带参数存储过程的几种方式】,下面是详细的分享!
ASP调用带参数存储过程的几种方式
ASP调用带参数存储过程的几种方式
1 这也是最简单的方法,两个输入参数,无返回值:
set connection=server.createobject("adodb.connection")
connection.open someDSN
Connection.Execute "procname varvalue1, varvalue2"
'将所有对象清为nothing,释放资源
connection.close
set connection=nothing
2 如果要返回 Recordset 集:
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 pubs
GO
-- 建立存储过程
create procedure sp_PubsTest
-- 定义三个参数变量,注意第三个,特别标记是用于输出
@au_lname varchar (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 adCmdSPStoredProc
Dim adParamReturnValue
Dim adParaminput
Dim adParamOutput
Dim adInteger
Dim iVal
Dim oVal
Dim adoField
Dim adVarChar
‘这些值在 VB 中是预定义常量,可以直接调用,但在 VBScript 中没有预定义
adCmdSPStoredProc=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 each adoField in adoRS.Fields
Response.Write 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调用带参数存储过程的几种方式,下面是编辑为你推荐的有价值的用户互动:
相关问题:ASPNET怎样调用一个存储过程(带参数的)?
答:ASPNET怎样调用一个存储过程(带参数的)使用的是Ado.NET中的相关的数据库操作方法。 Ado.NET连接数据库有以下几个步骤: 1:使用配置的数据库连接串,创建数据库连接 Connection 对象 2:构建操作的sql语句 3:定义command对象 4:打开数据连接... >>详细
相关问题:在JAVA中怎么调用带参数的存储过程啊??
答:JDBC调用存储过程: CallableStatement 在Java里面调用存储过程,写法那是相当的固定: Class.forName(.... Connection conn = DriverManager.getConnection(.... /** *p是要调用的存储过程的名字,存储过程的4个参数,用4个?号占位符代替 *其余... >>详细
相关问题:在C#中怎么调用带参数的存储过程啊??
答:public DataSet getAllStu(string stuId) { try { connParameter.ds = new DataSet(); connParameter.commandtext = "getStuById"; connParameter.commandtype = CommandType.StoredProcedure; SqlParameter[] paras = { new SqlParameter("@stu... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
