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

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

这也是最简单的方法,两个输入参数,无返回值:

set  connection  server.createobject("adodb.connection")

connection.open  someDSN 

Connection.Execute  "procname  varvalue1,  varvalue2"

'将所有对象清为nothing,释放资源

connection.close

set  connection  nothing

如果要返回  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

以上两种方法都不能有返回值,(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"
  • 作者:218.241.229.*

 

2

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


'设置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调用带参数存储过程的几种方式

这也是最简单的方法,两个输入参数,无返回值:

set  connection  server.createobject("adodb.connection")

connection.open  someDSN 

Connection.Execute  "procname  varvalue1,  varvalue2"

'将所有对象清为nothing,释放资源

connection.close

set  connection  nothing

如果要返回  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

以上两种方法都不能有返回值,(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"
  • 作者:218.241.229.*

 

2

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


'设置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调用带参数存储过程的几种方式

这也是最简单的方法,两个输入参数,无返回值:

set  connection  server.createobject("adodb.connection")

connection.open  someDSN 

Connection.Execute  "procname  varvalue1,  varvalue2"

'将所有对象清为nothing,释放资源

connection.close

set  connection  nothing

如果要返回  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

以上两种方法都不能有返回值,(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"
  • 作者:218.241.229.*

 

2

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


'设置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

%>

此外还有其他方式,稍微偏门一些,以后慢慢再说
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"        2 ASP调用带参数存储过程的几种方式  '设置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
%>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值