亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

ASP下存儲過程編寫入門全接觸第2/5頁

 更新時間:2007年10月23日 20:32:55   作者:  

2. 沒有輸入輸出的存儲過程 
請看以下存儲過程: 
/*SP2*/ 
CREATE PROCEDURE dbo.delUserAll 
as 
     set nocount on 
begin 
     delete from dbo.[userinfo] 
end 
go 
  該存儲過程刪去userinfo表中的所有記錄,沒有任何輸入及輸出,調(diào)用方法與上面講過的基本相同,只是不用取得記錄集: 
復(fù)制代碼 代碼如下:

'**通過Command對象調(diào)用存儲過程**  
DIM MyComm  
Set MyComm = Server.CreateObject("ADODB.Command")  
MyComm.ActiveConnection = MyConStr 'MyConStr是數(shù)據(jù)庫連接字串  
MyComm.CommandText = "delUserAll" '指定存儲過程名  
MyComm.CommandType = 4 '表明這是一個存儲過程  
MyComm.Prepared = true '要求將SQL命令先行編譯  
MyComm.Execute '此處不必再取得記錄集  
Set MyComm = Nothing  

  當(dāng)然也可通過Connection對象或Recordset對象調(diào)用此類存儲過程,不過建立Recordset對象是為了取得記錄集,在沒有返回記錄集的情況下,還是利用Command對象吧。 

3. 有返回值的存儲過程 
  在進行類似SP2的操作時,應(yīng)充分利用SQL Server強大的事務(wù)處理功能,以維護數(shù)據(jù)的一致性。并且,我們可能需要存儲過程返回執(zhí)行情況,為此,將SP2修改如下: 
/*SP3*/ 
復(fù)制代碼 代碼如下:

CREATE PROCEDURE dbo.delUserAll  
as  
     set nocount on  
begin  
     BEGIN TRANSACTION  
         delete from dbo.[userinfo]  
IF error=0  
     begin  
         COMMIT TRANSACTION  
          return 1  
     end  
ELSE  
     begin  
          ROLLBACK TRANSACTION  
          return 0  
     end  
return  
end  
go  

  以上存儲過程,在delete順利執(zhí)行時,返回1,否則返回0,并進行回滾操作。為了在ASP中取得返回值,需要利用Parameters集合來聲明參數(shù): 
'**調(diào)用帶有返回值的存儲過程并取得返回值** 
DIM MyComm,MyPara 
Set MyComm = Server.CreateObject("ADODB.Command") 
MyComm.ActiveConnection = MyConStr 'MyConStr是數(shù)據(jù)庫連接字串 
MyComm.CommandText = "delUserAll" '指定存儲過程名 
MyComm.CommandType = 4 '表明這是一個存儲過程 
MyComm.Prepared = true '要求將SQL命令先行編譯 
'聲明返回值 
Set Mypara = MyComm.CreateParameter("RETURN",2,4) 
MyComm.Parameters.Append MyPara 
MyComm.Execute 
'取得返回值 
DIM retValue 
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參考,以下給出常用的類型代碼: 
adBigInt: 20 ; 
adBinary : 128 ; 
adBoolean: 11 ; 
adChar: 129 ; 
adDBTimeStamp: 135 ; 
adEmpty: 0 ; 
adInteger: 3 ; 
adSmallInt: 2 ; 
adTinyInt: 16 ; 
adVarChar: 200 ; 

對于返回值,只能取整形,且-1到-99為保留值; 
第三個參數(shù)(4),表明參數(shù)的性質(zhì),此處4表明這是一個返回值。此參數(shù)取值的說明如下: 
0 : 類型無法確定; 1: 輸入?yún)?shù);2: 輸入?yún)?shù);3:輸入或輸出參數(shù);4: 返回值 
以上給出的ASP代碼,應(yīng)該說是完整的代碼,也即最復(fù)雜的代碼,其實 

Set Mypara = MyComm.CreateParameter("RETURN",2,4) 
MyComm.Parameters.Append MyPara 
可以簡化為 
MyComm.Parameters.Append MyComm.CreateParameter("RETURN",2,4) 

甚至還可以繼續(xù)簡化,稍后會做說明。 
對于帶參數(shù)的存儲過程,只能使用Command對象調(diào)用(也有資料說可通過Connection對象或Recordset對象調(diào)用,但我沒有試成過)。 

4. 有輸入?yún)?shù)和輸出參數(shù)的存儲過程 
  返回值其實是一種特殊的輸出參數(shù)。在大多數(shù)情況下,我們用到的是同時有輸入及輸出參數(shù)的存儲過程,比如我們想取得用戶信息表中,某ID用戶的用戶名,這時候,有一個輸入?yún)?shù)----用戶ID,和一個輸出參數(shù)----用戶名。實現(xiàn)這一功能的存儲過程如下: 
/*SP4*/ 
CREATE PROCEDURE dbo.getUserName 
@UserID int, 
@UserName varchar(40) output 
as 
set nocount on 

相關(guān)文章

最新評論