在asp中怎麼調用帶輸出參數的預存程序

來源:互聯網
上載者:User
這是我寫的預存程序 CREATE proc hz @count2 bigint output, @minsl varchar, @maxsl varchar as create table #tmp(qqno bigint,[check] tinyint,sumsl varchar) create table #tmp1(qqno bigint,friendqqno bigint,addtime datetime,[check] tinyint,sumsl varchar) insert into #tmp select qqno,[check],count(*) as count1 from friendtable group by qqno,[check] order by qqno insert into #tmp1 select #tmp.qqno,friendqqno,addtime,#tmp.[check],sumsl from #tmp left join friendtable on #tmp.qqno=friendtable.qqno where sumsl>=@minsl and sumsl<=@maxsl select @count2=count(*) from #tmp1 GO 在asp中 set o_command=server.createobject("ADODB.Command") set o_command.ActiveConnection=conn1 o_command.CommandText="hz" o_command.CommandType=4 set o_prm=o_command.parameters o_prm.Append o_command.CreateParameter("@count2",adinteger,adParamOutput) o_prm.Append o_command.CreateParameter("@minsl",advarchar,adParamInput,friends) o_prm.Append o_command.CreateParameter("@maxsl",advarchar,adParamInput,friends1) o_command.execute() count2=cmd("@count2") 為什麼會出現這樣的錯誤呢? Microsoft VBScript 編譯器錯誤 錯誤 '800a03f6' 缺少 'End' /iisHelp/common/500-100.asp,行242 Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80040e14' [Microsoft][ODBC SQL Server Driver][SQL Server]過程 'hz' 需要參數 '@minsl',但未提供該參數。 /friendtable1.asp,行65
應該有declare吧 o_prm.Append o_command.CreateParameter("@count2",adinteger,adParamOutput,4) o_prm.Append o_command.CreateParameter("@minsl",advarchar,adParamInput,50) o_prm.Append o_command.CreateParameter("@maxsl",advarchar,adParamInput,50) 可能adinteger,adParamOutput沒賦值吧,在VB裡adinteger,adParamOutput等一些常量是有值的,但在ASP中,需要自己為它符值 adCmdSPStoredProc = 4 adParamReturnValue = 4 adParaminput = 1 adParamOutput = 2 adInteger = 3 adVarChar = 200 好了,去試試吧,應該能行的 count2=賦值 minsl=賦值 maxsl=賦值 set rs=conn.execute("hz '"& count2 &"','"& minsl &"','"& maxsl &"'") rs("count2")可以輸出 你在頁首加試一下 adovbs.inc這個檔案在C:\Program Files\Common Files\System\ado下可以找到如沒找到將adInteger這些常量換成原值試一下! CreateParameter([Name] , [type] , [Direction] , [Size] , [Value] ) 建立Command對象要使用的新參數。Name是新參數的名稱。Type是該參數的資料類型。你可以使用下表所示的任何資料類型: adBigInt 20 8位元組有符號整數 adBinary 128 二進位值 adBoolean 11 布爾值 adBSTR 8 Null-中斷字串(Unicode) adChar 129 字串值 adCurrency 6 貨幣值 adDate 7 日期值 adDBDate 133 日期值(yyyymmdd) adDBTime 134 時間值(hhmmss) adDBTimeStamp 135 日期時間值(yyyymmddhhmmss) adDecimal 14 具有固定的精度和範圍的擴充數字型。 adDouble 5 雙精確度浮點數值 adEmpty 0 空值 adError 10 32位錯誤碼 adGUID 72 全球唯一的標誌碼 adIDispatch 9 指向一個OLE對象Idispatch的指標 adInteger 3 4位元組有符號整數 adIUnknown 13 指向一個OLE對象Iunkown的指標 adLongVarBinary 205 長二進位值 adLongVarChar 201 長字串值 adLongVarWChar 203 長NULL-中斷字串值 adNumeric 131 具有固定的精度和範圍的擴充數字型。 adSingle 4 單精確度浮點值 adSmallInt 2 2位元組有符號整數 adTinyInt 16 1位元組有符號整數 adUnsignedBigInt 21 8位元組不帶正負號的整數 adUnsignedInt 19 4位元組不帶正負號的整數 adUnsignedSmallInt 18 2位元組不帶正負號的整數 adUnsignedTinyInt 17 1位元組不帶正負號的整數 adUserDefined 132 未定義變數 adVarBinary 204 二進位值 adVarchar 200 字串值 adVariant 12 OLE自動變數 adVarWchar 202 NULL-中斷Unicode字串 adWchar 130 NULL-中斷Unicode字串 Direction確定參數是輸入參數,輸出參數或預存程序的傳回值,下表描述了所有你可以使用的Direction值: 常數 值 描述 adParamInput 1 輸入參數(預設值) adParamOutput 2 輸出參數 adParamInputOutput 3 輸入/輸出參數 adParamReturnValue 4 傳回值 Size是參數的最大長度,以位元組或字元為單位。Value是參數的值。 這樣的方法比較好用 參考一下吧 給預存程序傳遞參數 : 如果預存程序中不用參數,而是單一的sql語句,還顯示不出調用預存程序的優勢! 比如說一bbs的查詢,可以按作者和主題查詢!則可以建立預存程序如下: 參數keyword為關鍵字,choose是選取查詢的方法。 CREATE PROCEDURE [dbo].[dt_bbs] @keyword varchar(20)=null, @choose int=null as if choose=1 select * from bbs where name like @keyword else select * from bbs where subject like @keyword return go 這樣我們調用預存程序時只需將參數傳遞過去就行了,而省去在asp中來寫一段程式 用第一種方法: set rs=server.createobject("adodb.recordset") sql="exec dt_bbs '"&keyword&"',"&choose&"" rs.open sql,conn,1,1
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.