欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ASP下存儲(chǔ)過(guò)程編寫(xiě)入門(mén)全接觸第2/5頁(yè)

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

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

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

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

3. 有返回值的存儲(chǔ)過(guò)程 
  在進(jìn)行類似SP2的操作時(shí),應(yīng)充分利用SQL Server強(qiáng)大的事務(wù)處理功能,以維護(hù)數(shù)據(jù)的一致性。并且,我們可能需要存儲(chǔ)過(guò)程返回執(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  

  以上存儲(chǔ)過(guò)程,在delete順利執(zhí)行時(shí),返回1,否則返回0,并進(jìn)行回滾操作。為了在ASP中取得返回值,需要利用Parameters集合來(lái)聲明參數(shù): 
'**調(diào)用帶有返回值的存儲(chǔ)過(guò)程并取得返回值** 
DIM MyComm,MyPara 
Set MyComm = Server.CreateObject("ADODB.Command") 
MyComm.ActiveConnection = MyConStr 'MyConStr是數(shù)據(jù)庫(kù)連接字串 
MyComm.CommandText = "delUserAll" '指定存儲(chǔ)過(guò)程名 
MyComm.CommandType = 4 '表明這是一個(gè)存儲(chǔ)過(guò)程 
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ù)的含義如下: 
  第一個(gè)參數(shù)("RETURE")為參數(shù)名。參數(shù)名可以任意設(shè)定,但一般應(yīng)與存儲(chǔ)過(guò)程中聲明的參數(shù)名相同。此處是返回值,我習(xí)慣上設(shè)為"RETURE"; 
  第二個(gè)參數(shù)(2),表明該參數(shù)的數(shù)據(jù)類型,具體的類型代碼請(qǐng)參閱ADO參考,以下給出常用的類型代碼: 
adBigInt: 20 ; 
adBinary : 128 ; 
adBoolean: 11 ; 
adChar: 129 ; 
adDBTimeStamp: 135 ; 
adEmpty: 0 ; 
adInteger: 3 ; 
adSmallInt: 2 ; 
adTinyInt: 16 ; 
adVarChar: 200 ; 

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

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

甚至還可以繼續(xù)簡(jiǎn)化,稍后會(huì)做說(shuō)明。 
對(duì)于帶參數(shù)的存儲(chǔ)過(guò)程,只能使用Command對(duì)象調(diào)用(也有資料說(shuō)可通過(guò)Connection對(duì)象或Recordset對(duì)象調(diào)用,但我沒(méi)有試成過(guò))。 

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

相關(guān)文章

最新評(píng)論