Шаблон с агрегатными функциями

Ниже приведен пример использования FOR XML NESTED и атрибута client-side-xml. Шаблон возвращает документ с названиями городов и количеством авторов в каждом городе. Атрибут client-side-xml устанавливается в 1, что говорит об использовании клиентского форматирования.

<?xml version="1.0"?><my_root xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:query client-side-xml="1"> select count(*) as number_of_authors,city from authors group by city order by number_of_authors desc for xml nested </sql:query></my_root>

Формирование XML-документа на клиенте с помощью ADO

У объекта Command есть свойство ClientSideXML, которое позволяет формировать XML-документ на клиенте. Рассмотрим пример:

<%Const adCmdText = 1Const adExecuteStream = &H400 Response.ContentType = "text/xml" ' Creating the objectsDim conn,cmdSet conn = Server.CreateObject("ADODB.Connection")Set cmd = Server.CreateObject("ADODB.Command") conn.Provider = "sqlxmloledb"conn.Open "Data Source=server;Initial catalog=pubs;Data Provider=sqloledb", _ "user","password" Dim ss = "select count(*) as number_of_authors,city" & _ "from authors" & _ "group by city" & _ "order by number_of_authors desc" & _ "for xml nested" Set cmd.ActiveConnection = ccmd.Properties("ClientSideXML") = "True"cmd.CommandType = adCmdTextcmd.CommandText = s cmd.Properties("Output Stream") = Responsecmd.Properties("xml root") = "root"cmd.Execute,, adExecuteStream Set cmd = nothingSet conn = nothing%>

В качестве основного провайдера задан провайдер SQLXMLOLEDB. Провайдер SQL Server’а задается с помощью строки Data Provider=sqloledb. Чтобы указать, что используется клиентское форматирование, свойство ClientSideXML установлено в true. Следует заметить, что это свойство (т.е. клиентское форматирование) можно использовать только для типа adCmdText. При вызове хранимых процедур его устанавливать нельзя.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: