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


       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

    '从第一个记录集中取值
    USERNAME = MYRST(0)
    '从第二个记录集中取值
    IF NOT MYRST IS NOTHING THEN
       SET MYRST = MYRST.NEXTRECORDSET()
       USERTEL  = MYRST(0)
       USERMAIL = MYRST(1)
    END IF
    SET MYRST = NOTHING

    以上代码中,利用RECORDSET对象的NEXTRECORDSET方法,取得了存储进程返回的多个记录集。


    至此,针对ASP调用存储进程的各种情况,本文已做了较为全面的说明。最后说一下在一个ASP程序中,调用多个存储进程的不同方法。

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

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