动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > SQL技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ SQL技巧 ]的信息

本月文章推荐
.SQL Server端口更改后的数据库连.
.sql server 2005扩充技巧.
.sql语句操作之cv大法全集.
.列出SQL SERVER 所有表,字段名,.
.如何修改数据库表或存储过程的所.
.如何实现将Excel表(含多张数据库.
.讲解三种存取备注二进制信息的方.
.SQL 2000中非域环境下数据库的异.
.榨干MS SQL Server 最后一滴血.
.使用SQLSERVER的扩展存储过程实现.
.获取SQL Server元数据的几种方法.
.sql server 2005中的DDL触发器.
.SQL订阅状态的自动检查及自动启动.
.MS SQL Server 2000系统数据类型.
.精妙SQL语句收集.
.XML文件导入SQL Server 2000.
.sqlserver MSDTC的设置要点 .
.解决物化视图刷新过程中的约束冲.
.在SQL Server 2005中实现异步触发.
.Sql Server数据库的备份和恢复措.

SQL Server 2005 - 如何实作CLR存储过程来传回讯息

发表日期:2007-1-19 |


为了让大家更了解如何实作 CLR 存储过程来传回讯息,以下我们示范如何使用SqlPipe 对象之 Send 方法的第三种多载版本,将查询结果直接传送至客户端:

 

q        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);
   }
  }
 }
}

 

q        请执行如下所示之 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;

http://www.cnblogs.com/liminzhang/archive/2007/01/18/623488.html

上一篇:把SQL数据库部署到远程数据库服务器中 人气:4041
下一篇:把Excel表中数据导入数据库 人气:6904
浏览全部SQL Server 2005的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-15 自由岭峰行业专用留言系统 v1.87
2008-10-15 Tikiwiki v1.9.11 多国语言版
2008-10-15 Roclog v3.1.6.28
2008-10-15 谷秋精品课程开发系统 v2.1
2008-10-15 pageadmin企业网站管理系统 v2.1
2008-10-15 晴天免费电影系统完整版(带迅雷采
2008-10-15 PHP-B2B v2.4.0 UTF8 Beta版
2008-10-15 云峰多用户网络进销存B/S v2.1
2008-10-15 Qspace v1.1.1 Access
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号