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

2016-02-19 12:07 9 1 收藏

今天图老师小编给大家精心推荐个在ASP中调用存储过程的几种方法教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~

【 tulaoshi.com - Web开发 】

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

'打印两个输出值:
Response.Write "p@intIDOut = “ & CmdSP.Parameters("@intIDOut").Value & "/p"
Response.Write "pReturn value = " & CmdSP.Parameters("RETURN_VALUE").Value & "/p"


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

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

来源:http://www.tulaoshi.com/n/20160219/1599840.html

延伸阅读
标签: ASP
  ASP 调用 ORACLE存储过程并返回结果集 看过网上好多ASP调用ORACLE的方法,但是没有特好特直接的东西,所以总结各家的东西最后得出的一个自己需要的方法,感觉也比较大众所以特此发布 ################################################### oracle的存储过程 ################################################### --创建包头 create...
一、前言采集我? ASP (Active Server Pages) 是服务器端的脚本编写环境,它由微软公司的IIS3.0以上版本支持。它可用来创建动态 Web 页或生成功能强大的 Web应用程序。ASP页是包括 HTML 标记、文本和脚本命令的文件。ASP页可调用ActiveX组件来执行任务,例如连接到数据库或进行商务计算。通过ASP,可为您的Web页添加交互内容或用HTML...
最近做了个Java的小项目(第一次写Java的项目哦), 到网上搜索了半天,找到了一个比较好点的调用存储过程的例子,而且网上普遍采用的都是setXXX((int parameterIndex, XXX x)的形式。这种形式感觉不是很直观,下面就发布一个完整的采用setXXX(String parameterName, XXX x)的编写方法。创建数据表,存储过程的代码都完整发布。 创建...
标签: ASP
       在ASP文件中调用DLL   作者:陈敏杰    动态联接库(DLL)是加快应用程序关键部分的执行速度的重要方法,但有一点恐怕大部分人都不知道,那就是在ASP文件也能通过调用DLL来加快服务器的执行速度,下面我简单的介绍一下在ASP文件调用DLL的步骤。    首先,必须...
Start! 下面是创建存储过程 CREATE PROCEDURE select_forum AS select * from forum Go xx.aspx <%@ Page Language="VB" % <%@ Import Namespace="System.Data" % <%@ Import Namespace="System.Data.SQL" % <% dim conn as SQLConnection dim cmd as SQLCommand dim myreader as SQLDataReader conn=new SQLConnectio("server=loc...

经验教程

98

收藏

93
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部