ASP调用带参数存储过程的几种方式
2019-11-05 09:48:25来源:爱站网 阅读 ()
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中设置session过期时间方法总结 2020-03-30
- asp中日期时间函数介绍 2020-03-30
- asp教程中get post提交表单有5点区别 2020-03-30
- ASP 时间函数及如何获取服务器时间的写法 2020-03-30
- asp中的ckEditor的详细配置小结 2020-03-30
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash