问题标签 [sqlxml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5412 浏览

c# - 将 C# 2.0 System.Data.SqlTypes.SqlXml 对象转换为 System.Xml.XmlNode

在 C# 中将数据与 XML 相互转换似乎总是有问题。它总是希望您创建一个完整的 XMLDocument 对象,即使您认为您不应该这样做。在这种情况下,我在 MS SQL 2005 服务器中有一个 SQLXML 列,我试图将其拉出并推送到一个需要 XMLNode 作为参数的函数中。您会认为这很容易,但除了将其转换为字符串并创建新的 XMLNode 对象之外,我无法找到正确的方法。

我可以使用 SqlDataReader,使用 sqlComm.ExecuteReader() 来加载阅读器,使用 sqlReader.GetSqlXml(0) 来获取 SQLXML 对象,但是如何将其转换为 XmlNode?

相反,我可以使用 sqlComm.ExecuteXmlReader() 来获取 XmlReader,但是如何从阅读器中提取 XmlNode?http://bytes.com/forum/thread177004.html说它不能用 XmlTextReader 完成,我应该使用 XmlNodeReader 吗?

请帮忙!

0 投票
1 回答
2483 浏览

sql-server - TSQL:如何在 XML 中进行自联接以获取嵌套文档?

我有一个这样的 SQL Server 2005 表:

数据看起来像 CategoryIdParentCategoryIdCategoryDescription 123nullfoo345123bar

I'd like to query it into an xml document like this:

FOR XML AUTO, ELEMENTS 可以做到这一点吗?还是我需要使用 FOR XML EXPLICIT?

0 投票
1 回答
1851 浏览

sql-server-2005 - 使用 XML 列的 SQL Pivot

有没有人有一个使用带有 XML 列的表进行数据透视的示例 - 特别是将 xml 列中的一些元素转换为数据透视表中的列?我正在尝试构建一个,但语法正在杀死我;与 C# 中的 xml 相比,sql 中的 xml 很难使用。我怀疑这是不可能的,但检查一下不会有什么坏处:)

0 投票
1 回答
1568 浏览

sql - 用于 XML 路径的 SQL Server

我正在返回查询的 xml 结果。

给定两个表:

我创建了一个选择语句,例如:

这可以按我的预期工作并返回正确的结果。我意识到,在开发它时,我需要在子选择和 where 子句中的嵌套选择中复制过滤子句,以获得正确的结果。

我想确保没有更好的方法来做到这一点。一位同事提到使用别名来删除重复的子句,但不确定这将如何完成任何事情。

这是必要的,还是有更好的方法?

0 投票
4 回答
5083 浏览

sql-server-2008 - SQLXML 与 Windows 2008 和 SQL Server 2008

我有一个使用 SQLXML 访问数据库数据的应用程序。我们让它在 Windows 2003 服务器和 SQL Server 2005 上运行。现在客户端想要在 Windows 2008 和 SQL Server 2008 上安装它,我们收到如下错误:
Microsoft.Data.SqlXml.SqlXmlException: Class not registered ---> System.Runtime.InteropServices.COMException (0x80040154):类未在 Microsoft.Data.SqlXml.Common.UnsafeNativeMethods 注册。ISQLXMLCommandManagedInterface.ExecuteToOutputStream() 在 Microsoft.Data.SqlXml.SqlXmlCommand.innerExecute(Stream strm) ...等

这真让我抓狂。SQLXML 是一种相当过时的技术,我们正在尝试将它与最新的 SO 一起使用。我找不到有关 SQLXML 和 Windows 2008 的官方信息,它似乎不受官方支持,但他们也没有说它也不支持。

SQLXML4.0SP1 安装似乎工作正常,但似乎在运行时失败。

你有什么想法?有人尝试过这样的事情吗?

0 投票
4 回答
7398 浏览

sql - MS SQL 2005“对于 XML 路径”节点布局问题

我有以下查询

这会产生:

我希望 child1 节点成为 node1 的一部分,而不是下面的单独节点。

我试过把 node1 放在子查询 PATH

或在子查询字段名称前加上 node1

但两者都为子查询创建了一个新的 node1 元素。

有谁知道我怎么能做到这一点?

谢谢

0 投票
1 回答
10043 浏览

sql-server - 如何在 SQL 2000 中对 NTEXT 查询的结果使用 sp_xml_preparedocument?

我知道 NTEXT 正在消失,并且这里存在更大的最佳实践问题(例如将 XML 存储在 NTEXT 列中),但我有一个包含 XML 的表,我需要从中提取一个属性值。使用 sp_xml_preparedocument 应该很容易做到这一点,但由于您无法声明 NTEXT 类型的局部变量并且我无法弄清楚如何使用表达式来指定传递给函数的 XML 文本,这一点变得更加棘手。由于 XML 或 VARCHAR(MAX) 数据类型,我可以在 SQL 2005 中这样做,但我可以为 SQL 2000 做什么?

对于 SQL 2000,我唯一能想到的就是使用 varchar(8000)。真的没有办法使用像下面这样的表达式吗?

0 投票
1 回答
148 浏览

sql-server-2005 - 为什么模式会使 XML 列变慢?

我有一个带有 XML 列的表。这些文档非常庞大且数量众多,我一直在尝试各种方法来提高基本查询的性能。

因为文档表明将 XML Schema 应用于列可以帮助 SQL Server 优化查询 - 并且因为有可用的查询 - 我创建了一个模式集合并将类型应用于我的 XML 列。

查询性能一落千丈。

我的意思是,最简单的测试变得非常缓慢。我删除了列类型,查询的执行和以前一样。这有发生在其他人身上吗?

我应该注意到,模式本身相当大而且很复杂。尽管如此,这个结果对我来说似乎违反直觉。

编辑:我只关心 SELECT 语句——事实上,这些文档永远不会被编辑,只会被浏览。因此,一旦插入并验证了记录,我看不出除了可能的优化之外,为什么还需要模式。

另外,我知道这个问题,XML 列上的索引会对性能产生不利影响。这不是我的问题——索引对我正在运行的查询没有明显的影响,无论是正面的还是负面的,并且我已经尝试了使用和不使用索引的上述场景。

0 投票
1 回答
596 浏览

sqlxml - XML xs:选择 SQLXMLBulkload

我有一些 XML 文件需要批处理到 SQL Server 中。以下 Schema 和 XML 部分概述了我遇到问题的一个领域。

但是由于 SQLXMLBulkload 不支持 xs:choice,我想知道是否有另一种表示方式,因为没有 xs:choice 部分,xs:sequence 一旦到达第二个 TextLine 就无效。

0 投票
1 回答
1386 浏览

sql-server-2008 - 针对 SQL Server 2008 从 ADO 访问 XML 流

我们正在迁移使用 ADO 连接到 SQL Server 2000 的 ASP 代码。在大多数情况下,代码在定义连接后顺利迁移到 SQL Server 2008,但是一种类型的查询引发了令我困惑的错误。

针对 SQL 2000,我们将使用如下代码:

SQL 是一个存储过程调用,在正常调用时工作。此代码继续针对 SQL 2000 工作,但针对 SQL 2008 它返回:

ERR_OPENSQLXML XMLDB.openSQLXML 失败。错误“-2147217898”:“此提供程序不支持命令方言。”

我的第一个猜测是 SQL 2008 依赖于 MSXML 版本 6,我需要一个新的 guid。我的 MSDN 和 Google-Fu 让我失望了:我找到的所有结果都使用这个 GUID。

有新的 GUID 吗?有没有更好的办法?这是否比在 ASP.NET 中重新编码(许多页面的命运已经)更省事了。

编辑:我想知道使用 SQLNCLI10 客户端是否会阻止它工作?