SQL Server CLR全功略之二---CLR存储过程
作者 佚名技术
来源 数据库编程
浏览
发布时间 2012-03-22
( string.Format("insert into stores values(''{0}'',''{1}'')", stor_id, stor_name), con); SqlContext.Pipe.ExecuteAndSend(com); } } 4和5的执行结果一样,但是在CLR中推荐使用方式5,这是将结果返回到客户端的最高效方法,因为数据不必复制到托管内存即传输到网络缓冲区。 6.使用PipeSend来发送单条记录 [Microsoft.SqlServer.Server.SqlProcedure] public static void UPS_PipeSendSqlDataRecord() { //像构造Table一样来构造SqlDataRecord,其中SqlMetaData类似DataColumn SqlDataRecord dataRecord = new SqlDataRecord(new SqlMetaData[] { new SqlMetaData("Col1", SqlDbType.NVarChar,100), new SqlMetaData("Col2", SqlDbType.Int) }); for (int count = 1; count < 5; count++) { //SqlDataRecord.SetString类似DataRow的功能,像Table中填充值 dataRecord.SetString(0, count.ToString()); dataRecord.SetInt32(1, count); //通过Send来发送 SqlContext.Pipe.Send(dataRecord); } } 7.使用PipeSendResult来发送结果集 [Microsoft.SqlServer.Server.SqlProcedure] public static void UPS_PipeSendResultSqlDataRecord() { //像构造Table一样来构造SqlDataRecord,其中SqlMetaData类似DataColumn SqlDataRecord dataRecord = new SqlDataRecord(new SqlMetaData[] { new SqlMetaData("Col1", SqlDbType.NVarChar,100), new SqlMetaData("Col2", SqlDbType.Int) }); //开始填充 SqlContext.Pipe.SendResultsStart(dataRecord); for (int count = 0; count < 5; count++) { //SqlDataRecord.SetString类似DataRow的功能,像Table中填充值 dataRecord.SetString(0, count.ToString()); dataRecord.SetInt32(1, count); //通过SendResultsRow把数据填充到Table,相关于Table.Rows.Add(DataRow); SqlContext.Pipe.SendResultsRow(dataRecord |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于SQL Server CLR全功略之二---CLR存储过程的所有评论