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

使用CLR存儲過程來傳回訊息實戰案例

開發 后端
文章主要介紹了如何實作 CLR存儲過程來傳回訊息,CLR存儲過程存放于類別庫項目 SendYouDataReader 中,示范如何使用 SqlPipe 對象的 Send 方法將查詢結果直接傳送至客戶端

從工作中總結了一些關于CLR存儲過程的經驗,在這里給大家介紹一下,如何能更好的使用 CLR存儲過程來傳回訊息,以下我們示范如何使用SqlPipe 對象之 Send 方法的第三種多載版本,將查詢結果直接傳送至客戶端。

CLR存儲過程存放于類別庫項目 SendYouDataReader 中,它示范如何使用 SqlPipe 對象的 Send 方法將查詢結果(也就是 SqlDataReader 類別對象)直接傳送至客戶端。特別要再次說明的是,雖然 Send 方法的執行效率略低于 ExecuteAndSend 方法,但是在數據被傳送至客戶端之前,Send 方法能夠提供***的彈性來處理數據,換句話說,如果您希望傳送先前通過同處理序(In-Process)提供者所執行的查詢結果,或是想要利用 SqlDataReader 的自訂實作來預先處理數據,請使此多載版本的 Send 方法。完成之后的程序代碼如下所示:

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

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

  1. USE 北風貿易;  
  2. GO   
  3. IF EXISTS (SELECT * FROM sys.procedures WHERE [name] = 'SendYouDataReader') DROP PROCEDURE SendYouDataReader;   
  4. GO  
  5. IF EXISTS (SELECT * FROM sys.assemblies WHERE [name] = 'SendYouDataReader') DROP ASSEMBLY SendYouDataReader;   
  6. GO -- 登錄組件SendYouDataReader.dll CREATE ASSEMBLY SendYouDataReader FROM   
  7. 'C:\SQL2005Demo\CH13\SendYouDataReader\SendYouDataReader\bin\ SendYouDataReader.dll' WITH permission_set = Safe;   
  8. GO -- 建立一個會參考所登錄之組件SendYouDataReader.dll 的存儲過程   
  9. CREATE PROCEDURE dbo.SendYouDataReader ( @LowerSalary money, @HigherSalary money )   
  10. AS EXTERNAL NAME SendYouDataReader.[SendYouDataReader.SendYouDataReaderClass].SendYouDataReader;  
  11. GO EXEC sp_configure 'clr enabled', '1';  
  12. GO RECONFIGURE;   
  13. GO DECLARE @return_value int -- 執行CLR 存儲過程   
  14. EXECUTE @return_value = dbo.SendYouDataReader @LowerSalary = 50000, @HigherSalary = 70000;  

執行結果

 

以上是CLR存儲過程的經驗,在這里給大家介紹一下

【編輯推薦】

  1. CLR函數壓縮NTEXT類型字段實例講解
  2. CLR函數實現字符串排序七步通
  3. CLR線程池教程四大功能詳解
  4. CLR程序集教程新手上路
  5. 全面解析CLR是什么一點通
責任編輯:田樹 來源: 博客
相關推薦

2009-09-18 10:55:17

CLR存儲過程

2009-10-22 14:05:55

CLR存儲過程

2009-09-18 10:40:05

CLR存儲過程

2009-10-22 13:02:47

SQL CLR存儲過程

2009-09-18 14:09:57

SQL CLR存儲過程

2009-10-22 18:06:31

CLR存儲過程

2009-09-17 19:19:17

CLR存儲過程

2010-04-16 11:03:02

Oracle存儲過程

2009-09-18 14:31:33

CLR觸發器

2020-11-02 13:24:49

MySQL數據庫存儲

2010-04-16 11:22:08

Oracle存儲過程

2010-05-19 14:13:12

MySQL存儲過程

2012-11-09 10:48:49

VDIvSphere

2009-09-03 14:26:17

Jit編譯

2010-07-08 17:15:04

SQL Server存

2009-11-03 15:13:13

ADO .NET存儲過

2010-09-14 10:16:57

sql server

2011-03-22 09:05:04

存儲過程益處

2009-05-13 10:29:01

存儲過程OracleJava

2022-02-22 12:51:39

存儲過程JavaSQL
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99精品一区二区 | 91社影院在线观看 | 国产一区在线免费观看视频 | 精品视频www | 大香在线伊779 | 色播av| 欧美国产日韩一区二区三区 | 成人精品一区二区 | 久久久青草婷婷精品综合日韩 | 不卡一区 | 啪一啪| 国产欧美日韩一区二区三区在线观看 | 一级黄色绿像片 | 91精品久久久久久久99 | 日韩精品一区二区三区高清免费 | 亚洲高清在线 | 黄色国产视频 | 在线第一页 | 国产伦精品一区二区三区四区视频 | 九九精品网 | 黄色免费在线观看网址 | 久久综合久色欧美综合狠狠 | 日韩精品久久一区二区三区 | 精品一区二区免费视频 | 97免费在线视频 | 久久久精品一区 | 999免费网站 | 日韩 国产 在线 | 大香网伊人| 亚洲成人一区 | 日韩在线观看一区二区三区 | 久久精品国产99国产 | 久久精品一级 | 少妇午夜一级艳片欧美精品 | 91黄色片免费看 | aa级毛片毛片免费观看久 | 99色视频| 天天看天天干 | 欧美精品一区二区三区在线 | 综合久久久久久久 | 久久精品这里精品 |