ASP中如何调用存储过程的方法

2018-09-10 01:13:50来源:爱站网 阅读 ()

新老客户大回馈,云服务器低至5折

今天小编跟大家分享一下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程序如下:


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?&?"
"?&?vbCRLF
Next
Response.Write?"
"
adoRS.MoveNext
Wend

'打印两个输出值:
Response.Write?"

@intIDOut?=?“?&?CmdSP.Parameters("@intIDOut").Value?&?"

"
Response.Write?"

Return?value?=?"?&?CmdSP.Parameters("RETURN_VALUE").Value?&?"

"


'大扫除
Set?adoRS?=?nothing
Set?CmdSP.ActiveConnection?=?nothing
Set?CmdSP?=?nothing
%>

此外还有其他方式,稍微偏门一些,以后慢慢再说
本文参考了多篇文章,这里不一一列出。

以上就是ASP中如何调用存储过程的方法的介绍,希望小编整理的相关知识和资料都对你们有所帮助,更多内容请继续关注爱站技术频道网站!

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:ASP中怎么获取真实的IP地址的方法

下一篇:分享一个简单的过滤广告代码