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

下載本文檔

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

文檔簡介

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

2、:* 通過 Command 對象調(diào)用存儲過程 *DIM MyComm,MyRstSet MyComm = Server.CreateObject(ADODB.Command)MyComm.ActiveConnection = MyConStrMyConStr 是數(shù)據(jù)庫連接字串MyComm.CommandText = getUserList 指定存儲過程名MyComm.CommandType = 4 表明這是一個存儲過程MyComm.Prepared = true 要求將 SQL 命令先行編Set MyRst = MyComm.ExecuteSet MyComm = Nothing存儲過程取得的

3、記錄集賦給 MyRst ,接下來,可以對 MyRst 進(jìn)行操作。在以上代碼中,CommandType 屬性表明請求的類型,取值及說明如下:-1表明CommandText參數(shù)的類型無法確定表明CommandText是一般的命令類型表明CommandText參數(shù)是一個存在的表名稱表明CommandText參數(shù)是一個存儲過程的名稱還可以通過 Connection 對象或 Recordset 對象調(diào)用存儲過程,方法分別如下:* 通過 Connection 對象調(diào)用存儲過程 *DIM MyConn,MyRstSet MyConn = Server.CreateObject(ADODB.Connectio

4、n)MyConn.openMyConStrMyConStr 是數(shù)據(jù) 最后一個參斷含義庫連接字串Set MyRst = MyConn.Execute(getUserList,0,4)同 CommandTypeSet MyConn = Nothing* 通過 Recordset 對象調(diào)用存儲過程 *DIM MyRstSet MyRst = Server.CreateObject(ADODB.Recordset)MyRst.open getUserList,MyConStr,0,1,4MyConStr 是數(shù)據(jù)庫連接字串 , 最后一個參斷含義與 CommandType 相同2. 沒有輸入輸出的存儲過程

5、請看以下存儲過程:/*SP2*/CREATE PROCEDURE dbo.delUserAllasset nocount onbegindelete from dbo.userinfoendgo該存儲過程刪去 userinfo 表中的所有記錄,沒有任何輸入及輸出,調(diào)用方法與上面講過的基本相同,只是不用取得記錄集:* 通過 Command 對象調(diào)用存儲過程 *DIM MyCommSet MyComm = Server.CreateObject(ADODB.Command;)MyComm.ActiveConnection = MyConStrMyConStr 是數(shù)據(jù)庫連接字串MyComm.Comm

6、andText = delUserAll 指定存儲過程名MyComm.CommandType = 4 表明這是一個存儲過程MyComm.Prepared = true 要求將 SQL 命令先行編MyComm.Execute 此處不必再取得記錄集Set MyComm = NothingCommand 對當(dāng)然也可通過 Connection 對象或 Recordset 對象調(diào)用此類存儲過程,不過建立Recordset 對象是為了取得記錄集,在沒有返回記錄集的情況下,還是利用 象吧。3. 有返回值的存儲過程SP2 修改如下:在進(jìn)行類似 SP2 的操作時,應(yīng)充分利用 SQL Server 強(qiáng)大的事務(wù)處理

7、功能,以維護(hù) 數(shù)據(jù)的一致性。并且,我們可能需要存儲過程返回執(zhí)行情況,為此,將/*SP3*/CREATE PROCEDURE dbo.delUserAllasset nocount onbeginBEGIN TRANSACTIONdelete from dbo.userinfoIF error=0beginCOMMIT TRANSACTION return 1endELSEbeginROLLBACK TRANSACTION return 0endreturnendgo以上存儲過程,在 delete 順利執(zhí)行時,返回 1,否則返回 0 ,并進(jìn)行回滾操作。為 了在 ASP 中取得返回值,需要利用 P

8、arameters 集合來聲明參數(shù):* 調(diào)用帶有返回值的存儲過程并取得返回值 *DIM MyComm,MyParaSet MyComm = Server.CreateObject(ADODB.Command)MyComm.ActiveConnection = MyConStrMyConStr 是數(shù)據(jù)庫連接字串MyComm.CommandText = delUserAll 指定存儲過程名MyComm.CommandType = 4 表明這是一個存儲過程MyComm.Prepared = true 要求將 SQL 命令先行編 聲明返回值Set Mypara = MyComm.CreateParam

9、eter(RETURN,2,4)MyComm.Parameters.Append MyParaMyComm.Execute 取得返回值DIM retValueretValue = 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ù)類型,具體的類型代碼

10、請參閱ADO 參考,以下給出常用的類型代碼:adBigInt: 20 ;adBinary : 128 ;adBoolean: 11 ;adChar: 129 ;adDBTimeStamp: 135 ;adE mp ty: 0 ;adl nteger: 3 ;adSmalll nt: 2 ;adTi nylnt: 16 ;adVarChar: 200 ;對于返回值,只能取整形,且-1到-99為保留值;第三個參數(shù)(4),表明參數(shù)的性質(zhì),此處4表明這是一個返回值。此參數(shù)取值的說明i密碼6377如下:0:類型無法確定;1:輸入?yún)?shù);2:輸入?yún)?shù);3 :輸入或輸出參數(shù);4:返回值以上給出的ASP代碼,應(yīng)該說是完整的代碼,也即最復(fù)雜的代碼,其實(shí)Set Mypara = MyComm.Create Parameter(RETURN,2,4)MyCom m.P arameters.A ppend MyPara可以簡化為MyCom m.P arameters.A ppend MyCom

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論