对于以上代码,只有一点需要说明:同时返回记录集和参数时,若要取得参数,需先将记录集关闭,使用记录集时再将其打开。 7. 返回多个记录集的存储过程 本文最先介绍的是返回记录集的存储过程。有时候,需要一个存储过程返回多个记录集,在ASP中,如何同时取得这些记录集呢?为了说明这一问题,在userinfo表中增加两个字段:usertel及usermail,并设定只有登录用户可以查看这两项内容。
/*SP7*/ CREATE PROCEDURE dbo.getUserInfo @userid int, @checklogin bit as set nocount on begin if @userid is null or @checklogin is null return select username from dbo.[usrinfo] where userid=@userid --若为登录用户,取usertel及usermail if @checklogin=1 select usertel,usermail from dbo.[userinfo] where userid=@userid return end go 以下是ASP代码: '**调用返回多个记录集的存储过程** DIM checklg,UserID,UserName,UserTel,UserMail DIM MyComm,MyRst UserID = 1 'checklogin()为自定义函数,判断访问者是否登录 checklg = checklogin() Set MyComm = Server.CreateObject("ADODB.Command") with MyComm .ActiveConnection = MyConStr 'MyConStr是数据库连接字串 .CommandText = "getUserInfo" '指定存储过程名 .CommandType = 4 '表明这是一个存储过程 .Prepared = true '要求将SQL命令先行编译 .Parameters.append .CreateParameter("@userid",3,1,4,UserID) .Parameters.append .CreateParameter("@checklogin",11,1,1,checklg) Set MyRst = .Execute end with Set MyComm = Nothing |