SQL Server CLR全功略之二---CLR存储过程
作者 佚名技术
来源 数据库编程
浏览
发布时间 2012-03-22
从这一节开始呢,我们就要开始CLR的编程之旅了。在这之前,我先把本节中需要了解的两个新类SqlDataRecord和SqlMetaData,及五个新方法SqlContext.Pipe.SendResultsStart,SqlContext.Pipe.SendResultsRow,SqlContext.Pipe.SendResultsEnd,SqlContext.Pipe.Send和SqlContext.Pipe.ExecuteAndSend进行一下必要的说明,方便大家阅读后续的代码。 首先SqlDataRecord和SqlMetaData是数据集合和原数据的意思。可以简单的把SqlDataRecord理解成DataTable,把SqlMetaData理解成DataColumn。我们再向SqlDataRecord里面填充数据之前要先执行SqlContext.Pipe.SendResultStart()方法,告诉数据库下面开始填充数据,使用SqlContext.Pipe.SendResultRow方法来填充数据,填充结束后使用SqlContext.Pipe.SendResultEnd方法来结束填充。这些都是基本流程,没什么好解释的,只要照着去做就可以了。 SqlContext.Pipe.Send是向客户端发送一条结果,SqlContext.Pipe.ExecuteAndSend是执行一条语句。 下面我将用几个实际的简单例子来说明如何使用这几个方法。 1.使用SqlContext.Pipe.Send构建无参无返回值的存储过程 [Microsoft.SqlServer.Server.SqlPRocedure] public static void USP_SayHello() { SqlContext.Pipe.Send("USP:Hello TJVictor!"); } 2.使用SqlContext.Pipe.Send构建带参无返回值的存储过程 [Microsoft.SqlServer.Server.SqlProcedure] public static void USP_SayHelloByParameter(SqlString msg) { SqlContext.Pipe.Send(msg.ToString()); } 3.使用SqlContext.Pipe.Send构建带参有返回值的存储过程 [Microsoft.SqlServer.Server.SqlProcedure] public static SqlInt32 USP_SayHelloByReturn(SqlString msg) { return msg.ToString().Length; } 4.使用SqlCommand来执行语句,注意这里使用了SQL Server自带的pubs数据库 [Microsoft.SqlServer.Server.SqlProcedure] public static void USP_ExecuteBySqlCommand(SqlString stor_id, SqlString stor_name) { //由于程序是在SQL Server内执行,所以连接字符串写成"context connection=true"即可 using (SqlConnection con = new SqlConnection("context connection=true")) { con.Open(); SqlCommand com = new SqlCommand( string.Format("insert into stores values(''{0}'',''{1}'')", stor_id, stor_name), con); com.ExecuteNonQuery(); } } 5.使用ExecuteAndSend来执行语句,注意这里使用了SQL Server自带的pubs数据库 [Microsoft.SqlServer.Server.SqlProcedure] public static void USP_ExecuteByExecuteAndSend(SqlString stor_id, SqlString stor_name) { //由于程序是在SQL Server内执行,所以连接字符串写成"context connection=true"即可 using (SqlConnection con = new SqlConnection("context connection=true")) { con.Open(); SqlCommand com = new SqlCommand |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于SQL Server CLR全功略之二---CLR存储过程的所有评论