'返回值(记录总量)
.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