最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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表中的所有記錄,沒有任何輸入及輸出,調用方法與上面講過的基本相同,只是不用取得記錄集: 
復制代碼 代碼如下:

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

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

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

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集合來聲明參數: 
'**調用帶有返回值的存儲過程并取得返回值** 
DIM MyComm,MyPara 
Set MyComm = Server.CreateObject("ADODB.Command") 
MyComm.ActiveConnection = MyConStr 'MyConStr是數據庫連接字串 
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)中,各參數的含義如下: 
  第一個參數("RETURE")為參數名。參數名可以任意設定,但一般應與存儲過程中聲明的參數名相同。此處是返回值,我習慣上設為"RETURE"; 
  第二個參數(2),表明該參數的數據類型,具體的類型代碼請參閱ADO參考,以下給出常用的類型代碼: 
adBigInt: 20 ; 
adBinary : 128 ; 
adBoolean: 11 ; 
adChar: 129 ; 
adDBTimeStamp: 135 ; 
adEmpty: 0 ; 
adInteger: 3 ; 
adSmallInt: 2 ; 
adTinyInt: 16 ; 
adVarChar: 200 ; 

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

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

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

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

相關文章

最新評論

曲沃县| 蓬溪县| 开封县| 屯门区| 微博| 江源县| 图片| 马关县| 密山市| 怀化市| 铁力市| 樟树市| 息烽县| 工布江达县| 盈江县| 宁晋县| 安西县| 霸州市| 敦化市| 张家口市| 济南市| 海盐县| 都兰县| 濉溪县| 湾仔区| 陇西县| 黔江区| 阿拉善右旗| 南丹县| 崇义县| 昆山市| 察隅县| 清远市| 通许县| 微博| 蓬安县| 崇文区| 卢氏县| 基隆市| 喀喇沁旗| 孝感市|