Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1228140
  • 博文数量: 699
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 4970
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 13:45
文章分类

全部博文(699)

文章存档

2011年(1)

2008年(698)

我的朋友

分类:

2008-10-15 13:46:32

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


--------------------next---------------------

阅读(329) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~