成都网站建设设计

将想法与焦点和您一起共享

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

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

十载专注建站、设计、互联网产品按需策划服务,业务涵盖品牌网站制作商城网站制作、微信小程序开发、软件系统开发、成都app开发等。凭借多年丰富的经验,我们会仔细了解每个客户的需求而做出多方面的分析、设计、整合,为客户设计出具风格及创意性的商业解决方案,创新互联建站更提供一系列网站制作和网站推广的服务,以推动各中小企业全面信息数字化,并利用创新技术帮助各行业提升企业形象和运营效率。

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存储过程来传回讯息”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!


网站栏目:如何使用CLR存储过程来传回讯息
当前网址:http://chengdu.cdxwcx.cn/article/gcpphg.html