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


       .COMMANDTYPE      = 4                 '表明这是一个存储进程
       .PREPARED         = TRUE              '要求将SQL命令先行编译
       '返回值要最先被声明
       .PARAMETERS.APPEND .CREATEPARAMETER("RETURN",2,4)
       '以下两参数的声明顺序也做相应颠倒
       .PARAMETERS.APPEND .CREATEPARAMETER("@USERNAME",200,2,40)
       .PARAMETERS.APPEND .CREATEPARAMETER("@USERID",3,1,4,USERID)
       .EXECUTE
    END WITH
    IF MYCOMM(0) = 1 THEN
       USERNAME = MYCOMM(1)
    ELSE
       USERNAME = "该用户不具有"
    END IF
    SET MYCOMM = NOTHING
6. 同时返回参数和记录集的存储进程
    有时候,我们需要存储进程同时返回参数和记录集,比如在利用存储进程分页时,要同时返回记录集以及数据总量等参数。以下给出一个进行分页处理的存储进程:

   /*SP6*/
    CREATE PROCEDURE DBO.GETUSERLIST
       @IPAGECOUNT INT OUTPUT,   --总页数
       @IPAGE INT,               --当前页号
       @IPAGESIZE INT            --每页记录数
    AS
    SET NOCOUNT ON
    BEGIN
       --创建临时表
       CREATE TABLE #T (ID INT IDENTITY,   --自增字段
                        USERID INT,
                        USERNAME VARCHAR(40))
       --向临时表中写入数据
       INSERT INTO #T
          SELECT USERID,USERNAME FROM DBO.[USERINFO]
             ORDER BY USERID

       --取得记录总数
       DECLARE @IRECORDCOUNT INT

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

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