• ----:)欢迎访问源码网(:----
    • 首页
    • 博客
    • 学院
    • 下载
    • 论坛
    • 影视
    • 发布源码
    • RSS
    • ITPig
    • 笑话网
    • 百家姓
    • 繁體中文

源码网 - 中国第一源码门户
选择镜像:网通镜像 - 电信主站
  • 首 页
  • 新闻动态
  • 网站运营
  • 网页制作
  • WEB开发
  • 编程开发
  • 图像媒体
  • 操作系统
  • 数据库
  • 服务器
热门搜索 优化 SEO 故事 cms IIS7 MySQL 个人 AdSense 主题推广 | 文章搜索: 高级搜索
会员登录/控制面版您的位置: 学院首页 >> 数据库 >> MySQL >> 详细内容
 

推荐文章

  • 《MySQL管理员指南》之一----MySQL安全性指南
  • 实例讲解MYSQL数据库的查询优化技术
  • MySQL查询优化技术讲座
 
 

热点文章

  • 支持中文的MySQL 5.1+ 全文检索分词插件
  • MySQL数据导入导出方法与工具mysqlimport
  • 《MySQL管理员指南》之一----MySQL安全性指南
  • MySql管理的一点心得&MYSQL命令行模式
  • 修改MySQL的默认密码
  • 使用 SQL Server 2005中的 CLR 集成
  • 使用MySQL全文检索
  • Microsoft SQL Server 2005 中的 XML 支持
  • 简介Mysql中的临时表使用方法
  • MySQL查询优化系列讲座之查询优化器
  • 使用Excel分析MySQL数据
  • MySQL的常见错误的解决方法(英文)
 
 

相关文章

  • “农村包围城市”SQL Server 2005“绸缪”企业级市场
  • 修改SQL Server 2005执行环境
  • SQL Server 2005中处理表分区问题
  • SQL Server 2005中Tempdb变化分析
  • SQL Server 2005的XML支持机制和安全机制
  • SQL SERVER 2005数据库镜像
  • SQL Server 2005性能测试之CPU篇
  • 安装SQL Server 2005实例环境图解
  • SQL Server 2005与DB2 8.2之对比
  • 了解SQL Server 2005五个有用的动态管理对象
  • SQL Server 2005:你应该知道的13件事情
  • 用SQL Server 2005的三个理由
 
 

百度搜索

 
 

使用 SQL Server 2005中的 CLR 集成

  • 阅览次数:
  • 文章来源: cp整理
  • 原文作者: 不详
  • 整理日期: 2007-04-03
  • 发表评论
  • 字体大小:
  • 小
  • 中
  • 大

将上面的示例改为返回来自 RSS 供给的信息,返回结果的代码如下所示(不包括未实现的方法):

 

[SqlFunction]
public static ISqlReader tvf1()
{
   return (ISqlReader)new RssReader();
}

public class RssReader : ISqlReader
{
   SqlMetaData[] rss_results = null;
   XPathDocument doc;
   XPathNavigator nav;
   XPathNodeIterator i;

   // Construct helper class, initializing metadata for the results
   // reading from the RSS feed, creating the iterator
   public RssReader()
   {
     rss_results = new SqlMetaData[4];
     rss_results[0] = new SqlMetaData("Title", SqlDbType.NVarChar, 250);
     rss_results[1] = new SqlMetaData("Publication Date", 
SqlDbType.DateTime);
     rss_results[2] = new SqlMetaData("Description", SqlDbType.NVarChar, 2000);
     rss_results[3] = new SqlMetaData("Link", SqlDbType.NVarChar, 1000);

     // Retrieve the RSS feed
     doc = new XPathDocument("http://msdn.microsoft.com/sql/rss.xml");
     nav = doc.CreateNavigator();
     i = nav.Select("//item");
   }

   // # of columns returned by the function
   public int FieldCount { get { return rss_results.Length; } }

   // metadata for each of the columns
   public SqlMetaData GetSqlMetaData(int FieldNo)
      { return rss_results[FieldNo]; }

   // Read method positions the navigator iterator on next element
   public bool Read() { return i.MoveNext(); }

   // methods to return each column
   public Object GetValue(int FieldNo) 
   {
      switch (FieldNo)
      {
         case 0:
            return new SqlString((string)                   
                   i.Current.Evaluate("string(title[1]/text())"));
         case 1:
            return new SqlDateTime(DateTime.Parse( 
                   
(string)i.Current.Evaluate("string(pubDate[1]/text())")));
         case 2:
            return new SqlString((string)
                   i.Current.Evaluate("string(description[1]/text())"));
         case 3:
            return new SqlString((string) 
                   i.Current.Evaluate("string(link[1]/text())"));
      }

      return null;
   }

   public string GetString(int i) { return (string)GetValue(i); }
   public DateTime GetDateTime(int i) { return (DateTime)GetValue(i); }
   public SqlChars GetSqlCharsRef(int i) { 
      return new SqlChars((SqlString)GetValue(i)); }
   public SqlChars GetSqlChars(int i) { 
      return new SqlChars((SqlString)GetValue(i)); }
   public SqlDateTime GetSqlDateTime(int i) { 
      return (SqlDateTime)GetValue(i); }
   ...
}

使用来自此表值函数的结果的一种简单查询如下所示:

select title, pubdate, description, link from dbo.GetRssFeed()

显然可以用此数据的 TVF 形式来表示更丰富的查询。假定函数 CanonicalURL() 会返回规范的 URL 版本。现在,可以使用规范的 URL 很容易地返回来自 RSS 供给的数据:

select title, pubdate, description, dbo.CanonicalURL(link) 
from dbo.tvf1()
order by pubdate

[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]

上一篇:PHP使用zlib扩展实现页面GZIP压缩输出
下一篇:构建支持Master/Slave读写分离的数据库操作类
  • 网友评论:
  • 查看所有评论
  • 我要发表评论
您的网名:
留言主题:
你要发表的内容:

 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 发布软件 | 帮助中心 | 源码论坛

Copyright © 2005-2007 CodePub.Com  程序支持:木翼  滇ICP备05005971号