SQL Server 2005 中的客户端 XML 处理

XML 数据类型的客户端支持

.NET 框架 V2.0 中的 ADO.NET XML 支持

SqlDataReader.GetSqlXml() 方法的 System.Data.SqlTypes 命名空间中,XML 数据类型是作为类 SqlXml 公开的。可以使用 SqlXml.CreateReader() 函数从 SqlXml 对象获得 XmlReader。

类型化 XML 列的 XML 架构集合的名称由三部分组成,可以从 XML 列的元数据中获得(通过使用 SqlDataReader 对象中的 GetSchemaTable() 或 GetSqlMetaData (int)),其三个部分作为三个属性,分别表示数据库 (XmlSchemaCollectionDatabase)、关系架构 (XmlSchemaCollectionOwingSchema) 和 XML 架构集合 (XmlSchemaCollectionName) 的名称。

客户端可以使用新的架构行集 XMLSCHEMA 从服务器检索 XML 架构。XMLSCHEMA 行集包含 XML 架构集合、目标命名空间和 XML 架构内容本身这样三列。

下面的示例显示了用于对 XML 数据类型进行托管访问的主干代码。

例:对 XML 数据类型进行进程内访问

下面的 C# 代码演示了如何从进程内提供程序访问 XML 数据类型。用于 SQL 客户端访问的代码需要适当地改变进程内访问。

  1. using System;
  2. using System.Xml;
  3. using System.Data;
  4. using System.Data.SqlTypes;
  5. using System.Data.SqlServer;
  6. class xmldtADONETReadAccessInProc
  7. {
  8. static void ReadXmlDataType () {
  9. // in-proc connection to server
  10. SqlConnection conn = SqlContext.GetConnection();
  11. // prepare query to select xml data
  12. SqlCommand cmd = conn.CreateCommand();
  13. cmd.CommandText = "SELECT xCol FROM docs";
  14. // execute query and retrieve incoming data
  15. SqlDataReader r = cmd.ExecuteReader();
  16. r.Read();
  17. // access XML data type field in rowset
  18. SqlXml xml = r.GetSqlXml(0);
  19. new XmlTextWriter(Console.Out).WriteNode(
  20. xml.CreateReader(), true);
  21. }
  22. }

例:使用 SQL 客户端提供程序更新 XML 数据类型列

下面的代码所显示的 WriteXmlDaraType () 方法使用 SQL 客户端程序提供程序来替换 XML 列中的值。用于进程内提供程序的代码是相似的。

  1. using System;
  2. using System.Xml;
  3. using System.Data;
  4. using System.Data.SqlTypes;
  5. using System.Data.SqlClient;
  6. class xmldtADONETUpdateAccess
  7. {
  8. static void WriteXmlDataType () {
  9. // connection to server
  10. SqlConnection conn = new SqlConnection("server=server1;" +
  11. " database=XMLtest; Integrated Security=SSPI");
  12. conn.Open();
  13. // update XML column at the server
  14. SqlCommand cmd = conn.CreateCommand();
  15. cmd.CommandText = "UPDATE docs SET xCol=@x WHERE id=1";
  16. // set value of XML parameter
  17. SqlParameter p = cmd.Parameters.Add("@x", SqlDbType.Xml);
  18. p.Value = new SqlXml(new XmlTextReader("<hello/>",
  19. XmlNodeType.Document, null));
  20. // execute update and close connection
  21. cmd.ExecuteNonQuery();
  22. conn.Close();
  23. }
  24. }

转载于:https://blog.51cto.com/cnming/662592

SQL Server 2005 中的客户端 XML 处理相关推荐

  1. Visual C# 2008+SQL Server 2005 数据库与网络开发--9.1.1 SQL Server 2005中的XML功能

    在SQL Server 2005中,对XML的支持已经集成到数据库本身的所有组件中,主要包括以下几方面. 支持XML格式的数据类型. 可以对XML格式的数据或者变量进行XQuery的查询. 增强了XM ...

  2. SQL Server 2005中的CLR(2)

    原文:http://www.sufeinet.com/thread-2253-1-1.html 这一节咱们来说说ClR的性能,我们不能只使用它而不去考虑到低 为什么要使用它或是在什么时候应该使用它,像 ...

  3. 使用 SQL Server 2005中的 CLR 集成

    Balaji Rathakrishnan Christian Kleinerman Brad Richards Ramachandran Venkatesh Vineet Rao Microsoft ...

  4. 打破第一范式的要求 (中英对照)Michael Rys 对 SQL Server 2005 中XML 的 评论——对微软SQL Server项目经理Michael Rys博士的采访

    Michael Rys on XML in SQL Server 2005 Michael Rys对SQL Server 2005中XML的评论 Michael Rys is one of two p ...

  5. SQL Server 2005中的分析服务功能[转]

    XXXX(不知道为什么CnBlogs上的人这么抵制XXXX,呵呵--)上推出了"体验SQL Server 2005"活动,当然啦,一些关于SQL Server 2005的文章被翻译 ...

  6. SQL Server 2005 中的商务智能和数据仓库

    微软发布了SQL Server 2005,对于微软与BI来说这是一个非常重要的版本,它完善了微软在BI方面的产品线.SQL Server 2005以及 Visual Studio .net2005的整 ...

  7. sql server 2005 中的同义词

    在SQL SERVER 2005中,终于出现了同义词了,大大方便了使用. 同义词是用来实现下列用途的数据库对象: 为本地或远程服务器上的另一个数据库对象(称为"基对象")提供备选名 ...

  8. SQL Server 2005中更改sa的用户名和密码

    修改数据库SA账号名称的代码如下: 代码如下: Alter LOGIN sa DISABLE Alter LOGIN sa WITH NAME = [systemAccount] "syst ...

  9. 浅析SQL Server 2005中的主动式通知机制

    一.引言 在开发多人同时访问的Web应用程序(其实不只这类程序)时,开发人员往往会在缓存策略的设计上狠下功夫.这是因为,如果将这种环境下不常变更的数据临时存放在应用程序服务器或是用户机器上的话,可以避 ...

最新文章

  1. 解决git本地提交不到远程库
  2. 关于Vision Transformer的一些思考
  3. Android 动画汇总-自定义动画
  4. 【转载】ABAP自定义长文本的处理
  5. 音视频技术开发周刊 | 158
  6. 结构体自动化转为char数组的实现
  7. dns迭代查询配置_dns解析?瞅瞅这篇文章
  8. 记录博客第一次上热门
  9. linux ftp命令参数全集
  10. Python 学习第一周
  11. 解锁lintcode-猫和狗的问题
  12. 交易系统开发(三)——风控系统
  13. 安卓仿苹果键盘输入法_苹果手机键盘背景图 安卓仿iphone输入法
  14. (7)nodejs学习---之模板引擎jadeejs
  15. office word ppt 无法打开, 一直处于安全模式,无法解除
  16. matlab清除坐标轴,matlab 使用技巧之设置坐标轴
  17. 哲学:哲学(世界观学说、社会形态之一)
  18. 互联网业务实战(一)--今日头条文章发布实现
  19. 应用程序如何隐藏标题栏
  20. 推荐几个帮你避坑和赚钱的公众号

热门文章

  1. Ambari HDP 完整安装手册
  2. 未来五年的全球绿色数据中心市场的增长趋势和预测
  3. ICommand接口
  4. 获取编译学习笔记 (十三)—— 外部中断
  5. 设置组策略的应用条件-----Windows 管理规范 (WMI)过虑器
  6. IBM服务器安装与HBA卡的驱动问题
  7. 经验:tensorflow 的 GPU 配置
  8. 牛客多校第六场 G Is Today Friday? 蔡勒公式/排列
  9. hibernate框架学习笔记2:配置文件详解
  10. Webservice 的安全