千家信息网

如何使用CLR存储过程来传回讯息

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍如何使用CLR存储过程来传回讯息,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!CLR存储过程存放于类别库项目 SendYouDataReader 中,它示范如何
千家信息网最后更新 2026年11月04日如何使用CLR存储过程来传回讯息

这篇文章主要介绍如何使用CLR存储过程来传回讯息,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

CLR存储过程存放于类别库项目 SendYouDataReader 中,它示范如何使用 SqlPipe 对象的 Send 方法将查询结果(也就是 SqlDataReader 类别对象)直接传送至客户端。特别要再次说明的是,虽然 Send 方法的执行效率略低于 ExecuteAndSend 方法,但是在数据被传送至客户端之前,Send 方法能够提供***的弹性来处理数据,换句话说,如果您希望传送先前通过同处理序(In-Process)提供者所执行的查询结果,或是想要利用 SqlDataReader 的自订实作来预先处理数据,请使此多载版本的 Send 方法。完成之后的程序代码如下所示:

using Microsoft.SqlServer.Server;   namespace SendYouDataReader  { public class SendYouDataReaderClass   { [Microsoft.SqlServer.Server.SqlProcedure()]   public static void SendYouDataReader(decimal LowerSalary, decimal HigherSalary)  { SqlCommand cmd; SqlDataReader dr; // 使用内容连接来进行连接。   using (SqlConnection connection = new SqlConnection("context connection=true"))   { connection.Open();   cmd = new SqlCommand( "SELECT 员工编号,姓名,目前薪资 FROM dbo.章立民研究室 " + "WHERE 目前薪资 BETWEEN @LowerSalary AND @HigherSalary", connection);  cmd.Parameters.AddWithValue("@LowerSalary", LowerSalary);  cmd.Parameters.AddWithValue("@HigherSalary", HigherSalary);  dr = cmd.ExecuteReader(); // 呼叫 SqlPipe 对象的 Send 方法将查询结果直接传送给客户端 SqlContext.Pipe.Send(dr); }   }   }   }

请执行如下所示之 SQL 指令,登录组件 SendYouDataReader.dll、建立一个参考所登录之组件 SendYouDataReader.dll 的存储过程、然后执行此 CLR 存储过程,执行结果如图表 1 所示:

USE 北风贸易;  GO   IF EXISTS (SELECT * FROM sys.procedures WHERE [name] = 'SendYouDataReader') DROP PROCEDURE SendYouDataReader;   GO  IF EXISTS (SELECT * FROM sys.assemblies WHERE [name] = 'SendYouDataReader') DROP ASSEMBLY SendYouDataReader;   GO -- 登录组件SendYouDataReader.dll CREATE ASSEMBLY SendYouDataReader FROM   'C:\SQL2005Demo\CH13\SendYouDataReader\SendYouDataReader\bin\ SendYouDataReader.dll' WITH permission_set = Safe;   GO -- 建立一个会参考所登录之组件SendYouDataReader.dll 的存储过程   CREATE PROCEDURE dbo.SendYouDataReader ( @LowerSalary money, @HigherSalary money )   AS EXTERNAL NAME SendYouDataReader.[SendYouDataReader.SendYouDataReaderClass].SendYouDataReader;  GO EXEC sp_configure 'clr enabled', '1';  GO RECONFIGURE;   GO DECLARE @return_value int -- 执行CLR 存储过程   EXECUTE @return_value = dbo.SendYouDataReader @LowerSalary = 50000, @HigherSalary = 70000;

以上是"如何使用CLR存储过程来传回讯息"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

过程 存储 方法 组件 结果 登录 内容 客户 客户端 对象 数据 参考 处理 查询 讯息 篇文章 类别 薪资 也就是 代码 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技创新与互联网经济 合肥互联网科技公司 猪兼强互联网科技 有马互联网科技 南京欣网互联网科技 上海喔噻互联网科技 伴你行互联网科技有限公司 互联网科技股午盘股票涨跌 互联网之后的科技是什么 互联网科技有哪些公司 搜狐科技互联网 华夏恒生互联网科技013171 华夏恒生科技与互联网科技 群盈汇互联网科技有限公司 梅州GM互联网络科技有限公司 城市宝互联网科技有限公司 互联网营销推广黑科技 绵阳真晨互联网科技有限公司 河南商务圈互联网科技有限公司 黑龙江互联网科技公司 中关村互联网 科技集团 互联网科技工作委员会副主任毛军 北京禾田雨橡互联网科技 开启互联网科技时代小说 昭通云南众福互联网科技有限公司 互联网科技扶贫时间 35岁以上互联网科技行业 国产互联网科技公司 互联网高科技绘画 高科技和互联网的现代国家
0