ASP调用带参数存储过程的几种方式

2019-11-05 09:48:25来源:爱站网 阅读 ()

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

ASP调用带参数存储过程的几种方式,我们都了解吗?开发程序的时候我们都必须要结合实际情况进行操作,今天就跟着爱站技术频道小编的步伐来学习吧!

ASP调用带参数存储过程的几种方式?????选择自?hxfwsk?的?Blog??
关键字???存储过程?
出处????

?作者:?讨饭猫

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?&?"
"?&?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调用数据库存储过程?????选择自?11830?的?Blog??
关键字???asp,数据库,存储过程?
出处????

asp调用数据库存储过程????

<%Set?Dataconn?=?Server.CreateObject("ADODB.Connection")?
'建立连接对象
Dataconn.Open?"DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft(R)?Developer?Studio;WSID=APP_SERVER;Regional=Yes"
Set?cmdTemp?=?Server.CreateObject("ADODB.Command")
'建立命令对象
Set?rst?=?Server.CreateObject("ADODB.Recordset")?
'建立记录集对象
cmdTemp.CommandText?=?"dbo.pd_test"?'存储过程名称
cmdTemp.CommandType?=?4?
'命令类别为4,表示为存储过程
Set?cmdTemp.ActiveConnection?=?Dataconn
Set?tmpParam?=?cmdTemp.CreateParameter("Return?Value",?3,?4,?4)
cmdTemp.Parameters.Append?tmpParam
Set?tmpParam?=?cmdTemp.CreateParameter("@BeginDate",?135,?1,?16,?riqi)?
'创建输入参数对象
cmdTemp.Parameters.Append?tmpParam
rst.Open?cmdTemp,?,?1,?3????
'生成查询结果
%>
这里调用的存储过程为pd_test,这种是ADO中提供的标准方法,但存在一个问题,就是当在存储过程中有两个以上的SELECT语句,但从逻辑上又不可能同时执行的时候,ADO会提示你存储过程中SELECT语句太多,解决方法是直接用ADO的CONNECTION对象的EXECUTE方法直接执行存储过程,如下:
<%
Set?Dataconn?=?Server.CreateObject("ADODB.Connection")?
'建立连接对象
Dataconn.Open?"DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft(R)?Developer?Studio;WSID=APP_SERVER;Regional=Yes"
ss?=?"EXECUTE?dbo.pd_test?"?&?"'"?&?riqi1?&?"'"?
Set?rs?=?dataconn.Execute(ss)
%>????

上文是爱站技术频道小编为大家带来的ASP调用带参数存储过程的几种方式,相信大家都学习的差不多了,希望了解以后对你学习有帮助作用哦。
?


原文链接:https://js.aizhan.com/develop/asp/9931.html
如有疑问请与原作者联系

标签:

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

上一篇:利用ASP实现事务处理的方法

下一篇:ASP创建MDaemon用户的代码的操作方法