日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
淺析CLR存儲(chǔ)過(guò)程實(shí)現(xiàn)傳回信息

為了讓大家更了解如何實(shí)作 CLR存儲(chǔ)過(guò)程來(lái)傳回訊息,以下我們示范如何使用SqlPipe 對(duì)象之 Send 方法的第三種多載版本,將查詢結(jié)果直接傳送至客戶端:

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供平和企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、H5場(chǎng)景定制、小程序制作等業(yè)務(wù)。10年已為平和眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

CLR存儲(chǔ)過(guò)程存放于類別庫(kù)項(xiàng)目SendYouDataReader 中,它示范如何使用 SqlPipe 對(duì)象的 Send 方法將查詢結(jié)果(也就是 SqlDataReader 類別對(duì)象)直接傳送至客戶端。

特別要再次說(shuō)明的是,雖然 Send 方法的執(zhí)行效率略低于ExecuteAndSend 方法,但是在數(shù)據(jù)被傳送至客戶端之前,Send 方法能夠提供***的彈性來(lái)處理數(shù)據(jù),換句話說(shuō),如果您希望傳送先前通過(guò)同處理序(In-Process)提供者所執(zhí)行的查詢結(jié)果,或是想要利用 SqlDataReader 的自訂實(shí)作來(lái)預(yù)先處理數(shù)據(jù),請(qǐng)使此多載版本的 Send 方法。完成之后的程序代碼如下所示:

 
 
 
  1. using Microsoft.SqlServer.Server;  
  2. namespace SendYouDataReader  
  3. {  
  4. public class SendYouDataReaderClass  
  5. {  
  6. [Microsoft.SqlServer.Server.SqlProcedure()]  
  7. public static void SendYouDataReader(decimal LowerSalary, 
  8. decimal HigherSalary)  
  9. {  
  10. SqlCommand cmd;  
  11. SqlDataReader dr;  
  12. // 使用內(nèi)容連接來(lái)進(jìn)行連接。   
  13. using (SqlConnection connection = new SqlConnection
  14. ("context connection=true"))  
  15. {  
  16. connection.Open();  
  17. cmd = new SqlCommand(  
  18. "SELECT 員工編號(hào),姓名,目前薪資 FROM dbo.章立民研究室 " +  
  19. "WHERE 目前薪資 BETWEEN @LowerSalary AND @HigherSalary", connection);  
  20. cmd.Parameters.AddWithValue("@LowerSalary", LowerSalary);  
  21. cmd.Parameters.AddWithValue("@HigherSalary", HigherSalary);  
  22. dr = cmd.ExecuteReader();  
  23. // 呼叫 SqlPipe 對(duì)象的 Send 方法將查詢結(jié)果直接傳送給客戶端   
  24. SqlContext.Pipe.Send(dr);  
  25. }  
  26. }  
  27. }  
  28. }  

請(qǐng)執(zhí)行如下所示之 SQL 指令,登錄組件 SendYouDataReader.dll、建立一個(gè)參考所登錄之組件 SendYouDataReader.dll 的CLR存儲(chǔ)過(guò)程、然后執(zhí)行此 CLR存儲(chǔ)過(guò)程:

 
 
 
  1. USE   
  2. GO  
  3. IF EXISTS (SELECT * FROM sys.procedures WHERE [name] = 'SendYouDataReader')  
  4. DROP PROCEDURE SendYouDataReader;  
  5. GO  
  6. IF EXISTS (SELECT * FROM sys.assemblies WHERE [name] = 'SendYouDataReader')  
  7. DROP ASSEMBLY SendYouDataReader;  
  8. GO  
  9. -- 登錄組件SendYouDataReader.dll   
  10. CREATE ASSEMBLY SendYouDataReader  
  11. FROM  
  12. 'C:\SQL2005Demo\CH13\SendYouDataReader\SendYouDataReader\bin\  
  13. SendYouDataReader.dll'  
  14. WITH permission_set = Safe;  
  15. GO  
  16. -- 建立一個(gè)會(huì)參考所登錄之組件SendYouDataReader.dll 的CLR存儲(chǔ)過(guò)程   
  17. CREATE PROCEDURE dbo.SendYouDataReader  
  18. (  
  19. @LowerSalary money, @HigherSalary money  
  20. )  
  21. AS EXTERNAL NAME  
  22. SendYouDataReader.[SendYouDataReader.SendYouDataReaderClass].
  23. SendYouDataReader;  
  24. GO  
  25. EXEC sp_configure 'clr enabled', '1';  
  26. GO  
  27. RECONFIGURE;  
  28. GO  
  29. DECLARE @return_value int  
  30. -- 執(zhí)行CLR 存儲(chǔ)過(guò)程   
  31. EXECUTE @return_value = dbo.SendYouDataReader  
  32. @LowerSalary = 50000,  
  33. @HigherSalary = 70000;  

以上就是筆者介紹的關(guān)于CLR存儲(chǔ)過(guò)程知識(shí),希望能給大家?guī)?lái)幫助。

【編輯推薦】

  1. 淺析基于SQL2005的CLR存儲(chǔ)過(guò)程
  2. 分析與對(duì)比CLR Via C#靜態(tài)構(gòu)造函數(shù)的性能
  3. 為你解疑:CLR是什么?
  4. linq to sql多表查詢淺析
  5. linq to sql多表基礎(chǔ)描述

當(dāng)前標(biāo)題:淺析CLR存儲(chǔ)過(guò)程實(shí)現(xiàn)傳回信息
當(dāng)前地址:http://www.5511xx.com/article/dhihsgc.html