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


       .COMMANDTYPE      = 4                 '表明这是一个存储进程
       .PREPARED         = TRUE              '要求将SQL命令先行编译
       .PARAMETERS.APPEND .CREATEPARAMETER("@USERID",3,1,4,USERID)
       .PARAMETERS.APPEND .CREATEPARAMETER("@USERNAME",200,2,40)
       .EXECUTE
    END WITH
    USERNAME = MYCOMM(1)
    SET MYCOMM = NOTHING

    假如我们要取得ID为1到10,10位用户的用户名,是不是要创建10次COMMAND对象呢?不是的。如果需要多次调用同一存储进程,只需改变输入参数,就会得到不同的输出:

    '**多次调用同一存储进程**
    DIM MYCOMM,USERID,USERNAME
    USERNAME = ""
    SET MYCOMM = SERVER.CREATEOBJECT("ADODB.COMMAND")
    FOR USERID = 1 TO 10
       WITH MYCOMM
          .ACTIVECONNECTION = MYCONSTR          'MYCONSTR是数据库连接字串
          .COMMANDTEXT      = "GETUSERNAME"     '指定存储进程名
          .COMMANDTYPE      = 4                 '表明这是一个存储进程
          .PREPARED         = TRUE              '要求将SQL命令先行编译
          IF USERID = 1 THEN
             .PARAMETERS.APPEND .CREATEPARAMETER("@USERID",3,1,4,USERID)
             .PARAMETERS.APPEND .CREATEPARAMETER("@USERNAME",200,2,40)
             .EXECUTE
          ELSE
             '重新给入参赋值(此时参数值不发生变化的入参以及出参不必重新声明)
             .PARAMETERS("@USERID") = USERID
             .EXECUTE

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

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