ASP程序与SQL存储过程结合使用详解(10)


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

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

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