一般通過command對象調(diào)用存儲過程_第1頁
一般通過command對象調(diào)用存儲過程_第2頁
一般通過command對象調(diào)用存儲過程_第3頁
一般通過command對象調(diào)用存儲過程_第4頁
一般通過command對象調(diào)用存儲過程_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、 在ASP中,一般通過command對象調(diào)用存儲過程,根據(jù)不同情況,本文也介紹其它調(diào)用方法。為了方便說明,根據(jù)存儲過程的輸入輸出,作以下簡單分類:    1. 只返回單一記錄集的存儲過程    假設(shè)有以下存儲過程(本文的目的不在于講述T-SQL語法,所以存儲過程只給出代碼,不作說明):   /*SP1*/    CREATE PROCEDURE dbo.getUserList    as 

2、0;  set nocount on    begin       select * from dbo.userinfo    end    go    以上存儲過程取得userinfo表中的所有記錄,返回一個記錄集。通過command對象調(diào)用該存儲過程的ASP代碼如下:       &#

3、160;'*通過Command對象調(diào)用存儲過程*    DIM MyComm,MyRst    Set MyComm = Server.CreateObject("ADODB.Command")    MyComm.ActiveConnection = MyConStr          'MyConStr是數(shù)據(jù)庫連接字串 

4、0;  MyComm.CommandText      = "getUserList"     '指定存儲過程名    MyComm.CommandType      = 4               

5、;  '表明這是一個存儲過程    MyComm.Prepared         = true              '要求將SQL命令先行編譯    Set MyRst = MyComm.Execute    Set MyCo

6、mm = Nothing    存儲過程取得的記錄集賦給MyRst,接下來,可以對MyRst進行操作。    在以上代碼中,CommandType屬性表明請求的類型,取值及說明如下:      -1   表明CommandText參數(shù)的類型無法確定      1    表明CommandText是一般的命令類型  &#

7、160;   2    表明CommandText參數(shù)是一個存在的表名稱      4    表明CommandText參數(shù)是一個存儲過程的名稱        還可以通過Connection對象或Recordset對象調(diào)用存儲過程,方法分別如下:     '*通過Connection對象調(diào)用存儲過程*

8、    DIM MyConn,MyRst    Set MyConn = Server.CreateObject("ADODB.Connection")    MyConn.open MyConStr                     

9、0;      'MyConStr是數(shù)據(jù)庫連接字串    Set MyRst  = MyConn.Execute("getUserList",0,4) '最后一個參斷含義同CommandType    Set MyConn = Nothing    '*通過Recordset對象調(diào)用存儲過程*    DIM MyR

10、st    Set MyRst = Server.CreateObject("ADODB.Recordset")    MyRst.open "getUserList",MyConStr,0,1,4    'MyConStr是數(shù)據(jù)庫連接字串,最后一個參斷含義與CommandType相同        2. 沒有輸入輸出的存儲過程  

11、;  請看以下存儲過程:    /*SP2*/    CREATE PROCEDURE dbo.delUserAll    as    set nocount on    begin       delete from dbo.userinfo    end  

12、;  go    該存儲過程刪去userinfo表中的所有記錄,沒有任何輸入及輸出,調(diào)用方法與上面講過的基本相同,只是不用取得記錄集:   '*通過Command對象調(diào)用存儲過程*    DIM MyComm    Set MyComm = Server.CreateObject("ADODB.Command")    MyComm.ActiveConnection =

13、 MyConStr          'MyConStr是數(shù)據(jù)庫連接字串    MyComm.CommandText      = "delUserAll"      '指定存儲過程名    MyComm.CommandType   

14、   = 4                 '表明這是一個存儲過程    MyComm.Prepared         = true            &

15、#160; '要求將SQL命令先行編譯    MyComm.Execute                              '此處不必再取得記錄集    Set MyComm = No

16、thing       當(dāng)然也可通過Connection對象或Recordset對象調(diào)用此類存儲過程,不過建立Recordset對象是為了取得記錄集,在沒有返回記錄集的情況下,還是利用Command對象吧。    3. 有返回值的存儲過程    在進行類似SP2的操作時,應(yīng)充分利用SQL Server強大的事務(wù)處理功能,以維護數(shù)據(jù)的一致性。并且,我們可能需要存儲過程返回執(zhí)行情況,為此,將SP2修改如下:    /*S

17、P3*/    CREATE PROCEDURE dbo.delUserAll    as    set nocount on    begin       BEGIN TRANSACTION       delete from dbo.userinfo     

18、60; IF error=0           begin             COMMIT TRANSACTION             return 1        

19、  end       ELSE          begin             ROLLBACK TRANSACTION             return 0 

20、;         end                return    end    go     以上存儲過程,在delete順利執(zhí)行時,返回1,否則返回0,并進行回滾操作。為了在ASP中取得返回值,需要利用Parameters集合來聲明參數(shù)

21、:'*調(diào)用帶有返回值的存儲過程并取得返回值*    DIM MyComm,MyPara    Set MyComm = Server.CreateObject("ADODB.Command")    MyComm.ActiveConnection = MyConStr         'MyConStr是數(shù)據(jù)庫連接字串   

22、0;MyComm.CommandText      = "delUserAll"      '指定存儲過程名    MyComm.CommandType      = 4               &

23、#160; '表明這是一個存儲過程    MyComm.Prepared         = true              '要求將SQL命令先行編譯   '聲明返回值'取得返回值    DIM retValue  

24、60; retValue = MyComm(0)    '或retValue = MyComm.Parameters(0)    Set MyComm = Nothing        在MyComm.CreateParameter("RETURN",2,4)中,各參數(shù)的含義如下:    第一個參數(shù)("RETURE")為參數(shù)名。參數(shù)名可以任意設(shè)定,但一般應(yīng)與存儲過程中聲明的參數(shù)名相同。此處是返回值,我習(xí)慣上設(shè)為"RETURE";第二個參數(shù)(2),表明該參數(shù)的數(shù)據(jù)類型,具體的類型代碼請參閱ADO參考,以下給出常用的類型代碼:  &#

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論