手机
当前位置:查字典教程网 >编程开发 >ASP教程 >ASP调用带参数存储过程的几种方式
ASP调用带参数存储过程的几种方式
摘要:ASP调用带参数存储过程的几种方式选择自hxfwsk的Blog关键字存储过程出处作者:讨饭猫ASP调用带参数存储过程的几种方式最近有很多的朋...

ASP调用带参数存储过程的几种方式选择自hxfwsk的Blog

关键字存储过程

出处

作者:讨饭猫

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

最近有很多的朋友问到调用存储过程的问题,这里简单介绍几种ASP调用带参数存储过程的方法。

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

%>

asp调用数据库存储过程选择自11830的Blog

关键字asp,数据库,存储过程

出处

asp调用数据库存储过程

<%SetDataconn=Server.CreateObject("ADODB.Connection")

'建立连接对象

Dataconn.Open"DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft(R)DeveloperStudio;WSID=APP_SERVER;Regional=Yes"

SetcmdTemp=Server.CreateObject("ADODB.Command")

'建立命令对象

Setrst=Server.CreateObject("ADODB.Recordset")

'建立记录集对象

cmdTemp.CommandText="dbo.pd_test"'存储过程名称

cmdTemp.CommandType=4

'命令类别为4,表示为存储过程

SetcmdTemp.ActiveConnection=Dataconn

SettmpParam=cmdTemp.CreateParameter("ReturnValue",3,4,4)

cmdTemp.Parameters.AppendtmpParam

SettmpParam=cmdTemp.CreateParameter("@BeginDate",135,1,16,riqi)

'创建输入参数对象

cmdTemp.Parameters.AppendtmpParam

rst.OpencmdTemp,,1,3

'生成查询结果

%>

这里调用的存储过程为pd_test,这种是ADO中提供的标准方法,但存在一个问题,就是当在存储过程中有两个以上的SELECT语句,但从逻辑上又不可能同时执行的时候,ADO会提示你存储过程中SELECT语句太多,解决方法是直接用ADO的CONNECTION对象的EXECUTE方法直接执行存储过程,如下:

<%

SetDataconn=Server.CreateObject("ADODB.Connection")

'建立连接对象

Dataconn.Open"DSN=SinoTrans;SERVER=APP_SERVER;UID=sa;PWD=;APP=Microsoft(R)DeveloperStudio;WSID=APP_SERVER;Regional=Yes"

ss="EXECUTEdbo.pd_test"&"'"&riqi1&"'"

Setrs=dataconn.Execute(ss)

%>

【ASP调用带参数存储过程的几种方式】相关文章:

ASP中生成文本文件的两种方式

关于使用存储过程创建分页

在ASP中调用存储过程的几种方法

ASP:页面输出太多会严重影响web程序的性能

用asp实现的数据库中存取文件的代码

ASP应用之模板采用

asp错误的几种处理方式

在ASP编程中使用数组

如何从数据库中随机取出10条记录的方法

结合asp和存储过程做的搜索程序

精品推荐
分类导航