首  页
站长信箱
868搜索
网站登录
免费计数器
免费留言本
IP来源查询
网站技术教程
网站流量统计
文章探索:   分类:    关键字:  
    什么?你还在找兼职?上兼客吧,现在兼客吧平台太火了,知名度和诚信度也很高,注册就送0.5元现金,满3元就能提现,马上到账了!最低3元就能提现,大家可以注册下试试!注册地址:http://www.jiankeba.com/computeryc1688
  + 栏目导航
  + 相关文章
ASP导出Excel数据的四种方法
ASP漏洞及安全建议来源
XMLHTTP.readyState的五种状态
xmlhttp status 各类值说明
Asp中ByVal传值与ByRef传值的问..
ASP技巧:判断远程图片是否存在
asp中有关字符编码转换的几个函..
绝妙的asp生成静态页面html函数
Asp计算页面执行时间
一个简单的用存储过程分页
将asp页面转换成htm页面
ASP网站漏洞解析及黑客入侵防范..
URL编码与SQL注入
几种常用排序算法(asp)
ASP调用带参数存储过程的几种方..
实用的ASP连接数据库的函数
ASP如何获取真实IP地址
ASP中怎么实现SQL数据库备份、..
判断Cookies是否处于开启状态
怎样才能将服务器端文件夹下的..
几行Asp代码实现防止表单重复提..
用ASP设计网站在线人数统计程序
asp论坛在线人数统计研究
如何用ASP远程在数据库中创建Ta..
用ASP调用SQL Server的视图和存..
Asp与XML的关系
ASP读取EXCEL
在ASP中使用Oracle数据库技巧
一个通过web.Mail发送邮件的类
几种打开记录集方式的比较

技术教程 -> ASP教程 ->  
ASP调用带参数存储过程的几种方式
来源:转载   人气:3206   录入时间:2007/2/10


    
   最近有很多的朋友问到调用存储过程的问题,这里简单介绍几种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 & "<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
   %>
   



| 网站转让 | 站长信箱 | 网站登录 | 技术教程 | 免费计数器 | 免费留言本 | 868流量统计 | 好帮手网站营销 |
地址:广东省阳江市  联系电话:13725641179 杨先生
Copyright 2004-2020 868资源网- 版权所有    粤ICP备05007330号