ASP开发中存储过程应用全接触(8)


.Prepared = true '要求将SQL命令先行编译  
'返回值(记录总量)  
.Parameters.Append .CreateParameter("RETURN",2,4)  
'出参(总页数)  
.Parameters.Append .CreateParameter("@iPageCount",3,2)  
'入参(当前页号)  
.Parameters.append .CreateParameter("@iPage",3,1,4,pagenow)  
'入参(每页记录数)  
.Parameters.append .CreateParameter("@iPageSize",3,1,4,pagesize)  
Set MyRst = .Execute  
end with  
if MyRst.state = 0 then '未取到数据,MyRst关闭  
recordcount = -1  
else  
MyRst.close '注意:若要取得参数值,需先关闭记录集对象  
recordcount = MyComm(0)  
pagecount = MyComm(1)  
if cint(pagenow)> =cint(pagecount) then pagenow=pagecount  
end if  
Set MyComm = Nothing  

'以下显示记录  
if recordcount = 0 then  
Response.Write "无记录"  
elseif recordcount > 0 then  
MyRst.open  
do until MyRst.EOF  
......  
loop  
'以下显示分页信息  
......  
else 'recordcount=-1  
Response.Write "参数错误"  
end if  
  对于以上代码,只有一点需要说明:同时返回记录集和参数时,若要取得参数,需先将记录集关闭,使用记录集时再将
其打开。  

  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代码:  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3526.html