/*SP1*/
CREATE PROCEDURE dbo.getUserList
as
set nocount on
begin
select * from dbo.[userinfo]
end
go
以上存储进程获得userinfo表中的一切纪录,前往一个纪录集。经由过程command对象挪用该存储进程的ASP代码以下:
'**经由过程Command对象挪用存储进程**
DIM MyComm,MyRst
Set MyComm = Server.CreateObject("ADODB.Command")
MyComm.ActiveConnection = MyConStr 'MyConStr是数据库毗连字串
MyComm.CommandText = "getUserList" '指定存储进程名
MyComm.CommandType = 4 '标明这是一个存储进程
MyComm.Prepared = true '请求将SQL号令先行编译
Set MyRst = MyComm.Execute
Set MyComm = Nothing
存储进程获得的纪录集赋给MyRst,接上去,可以对MyRst停止操作。
'**经由过程Connection对象挪用存储进程**
DIM MyConn,MyRst
Set MyConn = Server.CreateObject("ADODB.Connection")
MyConn.open MyConStr 'MyConStr是数据库毗连字串
Set MyRst = MyConn.Execute("getUserList",0,4) '最初一个参断寄义同CommandType
Set MyConn = Nothing
'**经由过程Recordset对象挪用存储进程**
DIM MyRst
Set MyRst = Server.CreateObject("ADODB.Recordset")
MyRst.open "getUserList",MyConStr,0,1,4
'MyConStr是数据库毗连字串,最初一个参断寄义与CommandType不异
2. 没有输出输入的存储进程
请看以下存储进程:
/*SP2*/
CREATE PROCEDURE dbo.delUserAll
as
set nocount on
begin
delete from dbo.[userinfo]
end
go
该存储进程删去userinfo表中的一切纪录,没有任何输出及输入,挪用办法与下面讲过的根基不异,只是不必获得纪录集:
'**经由过程Command对象挪用存储进程**
DIM MyComm
Set MyComm = Server.CreateObject("ADODB.Command")
MyComm.ActiveConnection = MyConStr 'MyConStr是数据库毗连字串
MyComm.CommandText = "delUserAll" '指定存储进程名
MyComm.CommandType = 4 '标明这是一个存储进程
MyComm.Prepared = true '请求将SQL号令先行编译
MyComm.Execute '此处不用再获得纪录集
Set MyComm = Nothing
固然也可经由过程Connection对象或Recordset对象挪用此类存储进程,不外创立Recordset对象是为了获得纪录集,在没有前往纪录集的情形下,仍是使用Command对象吧。