当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 高手帮忙! ......
    摘要: [求助]在使用word中, 时常出现这个问题: 在编辑文字的时候, 一切都很正常; 但是在使用预览功能的时候, 就只能预览到左边部分了; 打印出来的时候呢, 又能全部都打印得出来, 不过字会比以前小几号, 并且集中在右上角,很不好看。 请教高手, 是不是word中的什么配置没有设好呢? ......


調用存儲過程出現的問題

我使用ASP調用存儲過程,在SQL   query   Analyzer中輸入參數可以執行正確.但是在ASP調用的時候出現問題.我在存儲過程裡面進行了一系列的操作以後,最後用select   *   from   Table講處理的數鋸顯示出來.但是在網頁中調用:set   rsdata=cmd.execute()  
  ,錯誤是rsdata   is   close   ,不能進行操作.

NO.1   作者: leimin

to:   liuyunfeidu(飞龙)  
  不要乱说,是完全可以的。用ADO的command对象。  
  给你一个实例:-)  
   
  最近有很多的朋友问到调用存储过程的问题,这里简单介绍几种ASP调用带参数存储过程的方法。    
            1   这也是最简单的方法,两个输入参数,无返回值:    
             
            set   connection   =   server.createobject("adodb.connection")    
             
            connection.open   someDSN    
             
            Connection.Execute   "procname   varvalue1,   varvalue2"    
             
             
            ’将所有对象清为nothing,释放资源    
             
            connection.close    
             
            set   connection   =   nothing    
             
             
             
            2   如果要返回   Recordset   集:    
             
            set   connection   =   server.createobject("adodb.connection")    
             
            connection.open   someDSN    
             
            set   rs   =   server.createobject("adodb.recordset")    
             
            rs.Open   "Exec   procname   varvalue1,   varvalue2",connection    
             
             
            ’将所有对象清为nothing,释放资源    
             
            rs.close    
             
            connection.close    
             
            set   rs   =   nothing    
             
            set   connection   =   nothing    
             
             
             
            3   以上两种方法都不能有返回值,,如果要得到返回值,需要用Command的方法。    
             
            首先说明,返回值有两种。一种是在存储过程中直接return一个值,就象C和VB的函数返回值那样;另一种是可以返回多个值,存储这些值的变量名称需要在调用参数中先行指定。    
             
            这个例子要处理多种参数,输入参数,输出参数,返回记录集以及一个直接返回值    
             
            存储过程如下:    
             
             
            use   pubs    
             
            GO    
             
             
            --   建立存储过程    
             
            create   procedure   sp_PubsTest    
             
             
            --   定义三个参数变量,注意第三个,特别标记是用于输出    
             
            @au_lname   varchar   (20),    
             
            @intID   int,    
             
            @intIDOut   int   OUTPUT    
             
             
            AS    
             
             
            SELECT   @intIDOut   =   @intID   +   1    
             
             
            SELECT   *    
             
            FROM   authors    
             
            WHERE   au_lname   LIKE   @au_lname   +   ’%’    
             
             
            --直接返回一个值    
             
            RETURN   @intID   +   2    
             
             
             
            调用该存储过程的asp程序如下:    
             
            <%@   Language=VBScript   %>  
            <%  
            Dim   CmdSP  
            Dim   adoRS  
            Dim   adCmdSPStoredProc  
            Dim   adParamReturnValue  
            Dim   adParaminput  
            Dim   adParamOutput  
            Dim   adInteger  
            Dim   iVal  
            Dim   oVal  
            Dim   adoField  
            Dim   adVarChar  
             
            ‘这些值在   VB   中是预定义常量,可以直接调用,但在   VBScript   中没有预定义  
            adCmdSPStoredProc   =   4  
            adParamReturnValue   =   4  
            adParaminput   =   1  
            adParamOutput   =   2  
            adInteger   =   3  
            adVarChar   =   200  
             
            iVal   =   5  
            oVal   =   3  
             
            建一个command对象  
            set   CmdSP   =   Server.CreateObject("ADODB.Command")  
             
            建立连结  
            CmdSP.ActiveConnection   =   "Driver={SQL   Server};server=(local);Uid=sa;Pwd=;Database=Pubs"  
             
            定义command   对象调用名称    
            CmdSP.CommandText   =   "sp_PubsTest"  
             
            设置command调用类型是存储过程   (adCmdSPStoredProc   =   4)  
            CmdSP.CommandType   =   adCmdSPStoredProc  
             
            往command   对象中加参数  
            定义存储过程有直接返回值,并且是个整数,省缺值是4  
            CmdSP.Parameters.Append   CmdSP.CreateParameter("RETURN_VALUE",   adInteger,   adParamReturnValue,   4)  
            定义一个字符型输入参数  
            CmdSP.Parameters.Append   CmdSP.CreateParameter("@au_lname",   adVarChar,   adParaminput,   20,   "M")  
            定义一个整型输入参数  
            CmdSP.Parameters.Append   CmdSP.CreateParameter("@intID",   adInteger,   adParamInput,   ,   iVal)  
            定义一个整型输出参数  
            CmdSP.Parameters.Append   CmdSP.CreateParameter("@intIDOut",   adInteger,   adParamOutput,   oVal)  
             
            运行存储过程,并得到返回记录集  
            Set   adoRS   =   CmdSP.Execute  
             
             
            把每个记录打印出来,其中的字段是虚拟的,可以不用管  
            While   Not   adoRS.EOF  
             
            for   each   adoField   in   adoRS.Fields  
            Response.Write   adoField.Name   &   "="   &   adoField.Value   &   "<br>"   &   vbCRLF  
            Next  
            Response.Write   "<br>"  
            adoRS.MoveNext  
            Wend  
             
            打印两个输出值:  
            Response.Write   "<p>@intIDOut   =   “   &   CmdSP.Parameters("@intIDOut").Value   &   "</p>"  
            Response.Write   "<p>Return   value   =   "   &   CmdSP.Parameters("RETURN_VALUE").Value   &   "</p>"  
             
             
            大扫除  
            Set   adoRS   =   nothing  
            Set   CmdSP.ActiveConnection   =   nothing  
            Set   CmdSP   =   nothing  
            %>  
   
     
   
   
     
     
     
     
 


 ·五一去哪    »显示摘要«
    摘要: 小心非典 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE