成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

淺析CLR存儲過程實現傳回信息

開發 后端
CLR存儲過程存放于類別庫項目SendYouDataReader 中,它示范如何使用 SqlPipe 對象的 Send 方法將查詢結果(也就是 SqlDataReader 類別對象)直接傳送至客戶端。

為了讓大家更了解如何實作 CLR存儲過程來傳回訊息,以下我們示范如何使用SqlPipe 對象之 Send 方法的第三種多載版本,將查詢結果直接傳送至客戶端:

CLR存儲過程存放于類別庫項目SendYouDataReader 中,它示范如何使用 SqlPipe 對象的 Send 方法將查詢結果(也就是 SqlDataReader 類別對象)直接傳送至客戶端。

特別要再次說明的是,雖然 Send 方法的執行效率略低于ExecuteAndSend 方法,但是在數據被傳送至客戶端之前,Send 方法能夠提供***的彈性來處理數據,換句話說,如果您希望傳送先前通過同處理序(In-Process)提供者所執行的查詢結果,或是想要利用 SqlDataReader 的自訂實作來預先處理數據,請使此多載版本的 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. // 使用內容連接來進行連接。   
  13. using (SqlConnection connection = new SqlConnection
  14. ("context connection=true"))  
  15. {  
  16. connection.Open();  
  17. cmd = new SqlCommand(  
  18. "SELECT 員工編號,姓名,目前薪資 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 對象的 Send 方法將查詢結果直接傳送給客戶端   
  24. SqlContext.Pipe.Send(dr);  
  25. }  
  26. }  
  27. }  
  28. }  

請執行如下所示之 SQL 指令,登錄組件 SendYouDataReader.dll、建立一個參考所登錄之組件 SendYouDataReader.dll 的CLR存儲過程、然后執行此 CLR存儲過程:

  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. -- 建立一個會參考所登錄之組件SendYouDataReader.dll 的CLR存儲過程   
  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. -- 執行CLR 存儲過程   
  31. EXECUTE @return_value = dbo.SendYouDataReader  
  32. @LowerSalary = 50000,  
  33. @HigherSalary = 70000;  

以上就是筆者介紹的關于CLR存儲過程知識,希望能給大家帶來幫助。

【編輯推薦】

  1. 淺析基于SQL2005的CLR存儲過程
  2. 分析與對比CLR Via C#靜態構造函數的性能
  3. 為你解疑:CLR是什么?
  4. linq to sql多表查詢淺析
  5. linq to sql多表基礎描述
責任編輯:阡陌 來源: IT168
相關推薦

2009-10-22 15:09:40

CLR存儲過程

2009-09-18 14:09:57

SQL CLR存儲過程

2009-09-17 19:19:17

CLR存儲過程

2009-09-18 10:40:05

CLR存儲過程

2009-10-22 13:02:47

SQL CLR存儲過程

2009-10-22 14:05:55

CLR存儲過程

2009-10-22 18:06:31

CLR存儲過程

2009-09-18 13:47:17

CLR類庫

2009-07-22 15:58:34

JDBC調用Oracl

2009-09-14 16:29:39

LINQ嵌套

2009-09-18 09:59:39

C# CLR

2009-09-18 09:02:45

CLR Via C#

2009-07-21 13:50:00

iBATIS.NET調

2009-07-22 09:39:18

CLR線程池

2009-11-06 09:23:41

ASP.NET高效分頁

2009-08-26 09:48:48

C#異步套接字

2009-07-27 14:41:33

ASP.NET調用存儲

2010-11-29 09:12:46

sybase分頁存儲過

2018-11-13 09:49:11

存儲云存儲云備份

2009-09-03 14:26:17

Jit編譯
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 男人天堂av网站 | 一区二区三区高清在线观看 | 亚洲 中文 欧美 日韩 在线观看 | 国产91在线 | 中日 | 九九热精品视频 | 亚洲精品国产一区 | 日韩手机在线视频 | 国产高清在线精品 | 国产69精品久久99不卡免费版 | 亚洲一区二区精品视频在线观看 | 污免费网站 | 亚洲男人的天堂网站 | 欧美日韩a| 中文字幕在线播放不卡 | 热99在线| 正在播放国产精品 | 亚洲一区二区精品视频 | 日韩视频在线观看中文字幕 | 国产69精品久久99不卡免费版 | 成人教育av| 免费一区二区 | 久久亚洲欧美日韩精品专区 | av天天看| 毛片站| 国产高清视频一区 | 一级片免费视频 | 精品国产第一区二区三区 | 国产精品1区 | 国产精品一级在线观看 | 国产精品1区2区3区 欧美 中文字幕 | 国产精品美女久久久久久免费 | 中文字幕高清av | 国产一区二区日韩 | 国产精品久久久乱弄 | 久久久久国产精品人 | 91精品国产乱码久久久久久 | 久久精品欧美一区二区三区麻豆 | 日本亚洲欧美 | 国产视频1区2区 | 有码在线 | 精品国产乱码久久久久久丨区2区 |