文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-06-17 20:42

关注

这篇文章主要介绍如何使用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存储过程来传回讯息

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯