文章类 软件类
好好999
站内搜索
 | 网站首页 | 网站建设 | 点滴人生 | 软件下载 | 站长必备 | 
您现在的位置: 好好888 >> 网站建设 >> 数据库 >> 数据库技术 >> 正文
专 题 列 表
最 新 热 门
更多
最 新 推 荐
更多
栏 目 推 荐
载入中…
Sql server 2005的XML最佳实施策略(3)         ★★★
Sql server 2005的XML最佳实施策略(3)
作者:佚名 文章来源:本站整理 点击数: 更新时间:2008-5-14 19:50:18

示例:使用 CLR 流式表值函数的解决方案

该解决方案包括以下步骤:(a) 定义 CLR 类 SqlReaderBase,它实现了 ISqlReader,并且通过在 XML 实例上应用路径表达式来生成流式表值输出;(b) 创建一个程序集和一个 T-SQL 用户定义函数 (UDF) 来激活该 CLR 类;(c) 使用 UDF 定义插入、更新和删除触发器,以维护属性表。

首先,创建流式 CLR 函数,其主干如下所示。XML 数据类型被公开为 ADO.NET 中的托管类 SqlXml;它支持返回 XmlReader 的方法 CreateReader()。

public class c_streaming_xml_tvf {

public static ISqlReader streaming_xml_tvf 

(SqlXml xmlDoc, string pathExpression) {

return (new TestSqlReaderBase (xmlDoc, pathExpression));

}

}



// Class that implements ISqlReader

public class TestSqlReaderBase : ISqlReader {

XPathNodeIterator m_iterator;         

???public SqlChars FirstName;

// Metadata for current resultset

private SqlMetaData[] m_rgSqlMetaData;      



public TestSqlReaderBase (SqlXml xmlDoc, string pathExpression) {   

// Variables for XPath navigation

      XPathDocument xDoc;

      XPathNavigator xNav;

      XPathExpression xPath;



      // Set sql meta data

      m_rgSqlMetaData = new SqlMetaData[1];

      m_rgSqlMetaData[0] = new SqlMetaData ("FirstName",  

SqlDbType.NVarChar,50);   



      //Set up the Navigator

      if (!xmlDoc.IsNull)

          xDoc = new XPathDocument (xmlDoc.CreateReader());

      else

          xDoc = new XPathDocument ();

      xNav = xDoc.CreateNavi

[1] [2] [3] [4] [5] [6] 下一页

文章录入:admin    责任编辑:admin 
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
  • 上一篇文章:

  • 下一篇文章:
  • 相 关 文 章
    分享:我的oracle9i学习笔记(二)
    分享:我的oracle9i学习笔记(三)
    一个Mysql C API小型封装…
    Sql server 2005的XML最佳实施策略(1)…
    Sql server 2005的XML最佳实施策略(2)…
    Sql server 2005的XML最佳实施策略(4)…
    sql server 2005 排序规则与大小写敏感…
    Sql server数据库不能启动常见故障…
    在Windows下管理Oracle9i服务
    Oracle 10g存储过程远程SQL注入漏洞…
    两台Sql server数据同步…
    SQL Server中发送邮件的新方式…
    SQL Server:错误18483…
    SQL2005其中三个版本的比较
    远程连接sql server 2000服务器的解决方案…
    如何自动发布MS SQL SERVER数据库…
    .NET基础知识-什么是.NET
    分享:Sql server 2005数据库安装心得…
    Mysql数据库的操作类(已封装)
    如何让Oracle数据不丢失?
     网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 关于本站 | 设为首页 | 加入收藏 | 站长邮箱 | 友情链接 | 网站公告 | 版权申明 | |
    copyright:haohao888.com.cn