Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Нужно определить структуру xml-я  [new]
sql.ru2016
Member

Откуда:
Сообщений: 4
Привет всем.

BEGIN
WITH CD (guid,title,parent, TitleXml, pos) AS
(
SELECT B.guid,B.title, B.parent, B.TitleXml, pos=0 FROM Classifier AS B WHERE B.guid=@guid_classifier
UNION ALL
SELECT B.guid, B.title, B.parent, B.TitleXml, pos=pos+1 FROM Classifier AS B INNER JOIN CD ON CD.parent=B.guid
)
SELECT * FROM CD WHERE pos<>0 AND CD.guid IN ([[ACCESS]]) AND CD.guid IN ([[LANG]]) ORDER BY pos DESC
END

SELECT * FROM Classifier WHERE guid=@guid_classifier AND guid IN ([[ACCESS]]) AND guid IN ([[LANG]])
SELECT * FROM Classifier WHERE parent=@guid_classifier AND guid IN ([[ACCESS]]) AND guid IN ([[LANG]]) ORDER BY [Sort]

Скажите, пожалуйста, можно ли на основе этого запроса к БД предположить, какая xml-ка лежит на серваке? Ребята, очень нужно определить структуру xml-я
8 фев 16, 16:43    [18788816]     Ответить | Цитировать Сообщить модератору
 Re: Нужно определить структуру xml-я  [new]
aleks2
Guest
Кто-то тут уже приводил точную аналогию
"Летят два крокодила. Один зеленый, а другой на север."

ЗЫ. Где тут xml? Поднимите мне веки!
8 фев 16, 16:49    [18788859]     Ответить | Цитировать Сообщить модератору
 Re: Нужно определить структуру xml-я  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
sql.ru2016, на основании этого запроса нельзя даже предположить, что на серваке лежит именно xml-ка.

Выполните свой запрос, получите XML и тогда уже смотрите, что за структура.
8 фев 16, 16:50    [18788865]     Ответить | Цитировать Сообщить модератору
 Re: Нужно определить структуру xml-я  [new]
sql.ru2016
Member

Откуда:
Сообщений: 4
Minamoto,

Я так понимаю, что B.guid,B.title, B.parent - атрибуты элемента

В xslt есть макросы типа:

<xsl:for-each select="item">
<xsl:value-of select="@title" disable-output-escaping="yes"/>

Это меню, которое выводится с помощью XSLT

Я правильно понимаю, что в XML конструкция типа <item guid="" titlr="" parent="" />
8 фев 16, 17:02    [18788949]     Ответить | Цитировать Сообщить модератору
 Re: Нужно определить структуру xml-я  [new]
Konst_One
Member

Откуда:
Сообщений: 11593
в запросе должно быть
FOR XML
8 фев 16, 17:03    [18788955]     Ответить | Цитировать Сообщить модератору
 Re: Нужно определить структуру xml-я  [new]
sql.ru2016
Member

Откуда:
Сообщений: 4
Konst_One,
Просветлите тогда, пожалуйста, что выполняет этот кусок кода по-русски?
sql.ru2016

BEGIN
WITH CD (guid,title,parent, TitleXml, pos) AS
(
SELECT B.guid,B.title, B.parent, B.TitleXml, pos=0 FROM Classifier AS B WHERE B.guid=@guid_classifier
UNION ALL
SELECT B.guid, B.title, B.parent, B.TitleXml, pos=pos+1 FROM Classifier AS B INNER JOIN CD ON CD.parent=B.guid
)
SELECT * FROM CD WHERE pos<>0 AND CD.guid IN ([[ACCESS]]) AND CD.guid IN ([[LANG]]) ORDER BY pos DESC
END

SELECT * FROM Classifier WHERE guid=@guid_classifier AND guid IN ([[ACCESS]]) AND guid IN ([[LANG]])
SELECT * FROM Classifier WHERE parent=@guid_classifier AND guid IN ([[ACCESS]]) AND guid IN ([[LANG]]) ORDER BY [Sort]

Скажите, пожалуйста, можно ли на основе этого запроса к БД предположить, какая xml-ка лежит на серваке? Ребята, очень нужно определить структуру xml-я
8 фев 16, 17:08    [18788981]     Ответить | Цитировать Сообщить модератору
 Re: Нужно определить структуру xml-я  [new]
Konst_One
Member

Откуда:
Сообщений: 11593
это просто некая выборка из таблицы
8 фев 16, 17:14    [18789022]     Ответить | Цитировать Сообщить модератору
 Re: Нужно определить структуру xml-я  [new]
sql.ru2016
Member

Откуда:
Сообщений: 4
Ясно, спс
8 фев 16, 17:19    [18789049]     Ответить | Цитировать Сообщить модератору
 Re: Нужно определить структуру xml-я  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
Konst_One
в запросе должно быть
FOR XML
Не обязательно. Это может быть код на, например, C#, который получает датасет в объект и потом этот объект напрямую переводит в XML. Т.е. ТС не в курсе, как связан этот SQL с XML, он просто делает предположения.
Если в XSLT есть именно такой код, который приводит автор, то логично предположить, что именно так и происходит - похоже на схему, которую я сам активно использую.
Но давать 100%-й гарантии нельзя, для точного понимания нужно видеть механизм получения данных и формирования XML. И, скорее всего, это не будет иметь отношения к SQL Server'у.
8 фев 16, 18:06    [18789265]     Ответить | Цитировать Сообщить модератору
 Re: Нужно определить структуру xml-я  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4813
declare @XML xml = 
'<root>
  <item id="1">
    <item_number>IT23</item_number>
    <title>Item number twenty-three</title>
    <setting>5 to 20</setting>
    <parameter>10 to 16</parameter>
    <new_node>data</new_node>
  </item>
  <item id="2">
    <item_number>RJ12</item_number>
    <title>Another item with a 12</title>
    <setting>7 to 35</setting>
    <parameter>1 to 34</parameter>
    <new_node>goes</new_node>
  </item>
  <item id="3">
    <item_number>LN90</item_number>
    <title>LN with 90</title>
    <setting>3 to 35</setting>
    <parameter>9 to 50</parameter>
    <new_node>here</new_node>
  </item>
</root>'

declare @SQL nvarchar(max) = ''
declare @Col nvarchar(max) = ', T.N.value(''[COLNAME][1]'', ''varchar(100)'') as [COLNAME]' 

select @SQL = @SQL + replace(@Col, '[COLNAME]', T.N.value('local-name(.)', 'sysname'))
from @XML.nodes('/root/item[1]/*') as T(N)

set @SQL = 'select '+stuff(@SQL, 1, 2, '')+' from @XML.nodes(''/*/*'') as T(N)' 

exec sp_executesql @SQL, N'@XML xml', @XML
8 фев 16, 18:36    [18789402]     Ответить | Цитировать Сообщить модератору
 Re: Нужно определить структуру xml-я  [new]
Konst_One
Member

Откуда:
Сообщений: 11593
Minamoto
Konst_One
в запросе должно быть
FOR XML

Не обязательно. Это может быть код на, например, C#, который получает датасет в объект и потом этот объект напрямую переводит в XML. Т.е. ТС не в курсе, как связан этот SQL с XML, он просто делает предположения.
Если в XSLT есть именно такой код, который приводит автор, то логично предположить, что именно так и происходит - похоже на схему, которую я сам активно использую.
Но давать 100%-й гарантии нельзя, для точного понимания нужно видеть механизм получения данных и формирования XML. И, скорее всего, это не будет иметь отношения к SQL Server'у.


здесь нет кода , который формирует XML и догадаться по SQL вряд ли выйдет тк у него 3 разные выборки
9 фев 16, 11:56    [18792117]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить