#607 - Utilizzare SQLXML per creare documenti XML con ASP

SQL Server 2000 supporta una particolare sintassi, offerta da un componente chiamato SQLXML, che permette di aggiungere funzionalità XML-based alle nostre query.
In particolare, è possibile creare al volo un file XML a partire dal risultato di una query, sfruttando come base di partenza questo script:

<%

' imposto il formato della risposta su XML
Response.ContentType="text/xml"

set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=sqloledb; Data Source=(local); Initial Catalog=pubs; Integrated Security=SSPI;"

XmlSQL = "<root><sql:query xmlns:sql=""urn:schemas-microsoft-com:xml-sql"">{0}</sql:query></root>"
strSQL = "SELECT * FROM titles FOR XML AUTO, ELEMENTS"

' creo la stringa per fare la query
SQL = Replace(XmlSQL, "{0}", strSQL)

' oggetto command per effettaure la query
Set command = Server.CreateObject("ADODB.Command")
command.ActiveConnection = conn

' dialetto XML
command.Dialect = "{5D531CB2-E6Ed-11D2-B252-00C04F681B71}"
command.CommandText = SQL

' scrivo sull'oggetto Response l'output
command.Properties("Output Stream") = Response
command.Properties("XML Root")  = "root"
command.Execute , , 1024

' chiusura
set command = Nothing
conn.Close
set conn = Nothing

%>

L'output sarà fatto a video, sfruttando l'oggetto Response, ma nulla vi vieta di caricare i dati all'interno di XmlDom ed agire di conseguenza.
Di particolare interesse la possibilità di avere un formato differente, con i valori dei campi come proprietà di un nodo centrale, rimuovendo la clausola EXPLICIT dalla query.
Con questo script e con poca fatica è possibile dunque creare facilmente esportazioni in formato XML.

Per approfondimenti si veda:

Query XML con T-SQL e SQL Server 2000
http://www.aspitalia.com/articoli/db/xmlt-sql.aspx


Approfondimenti

Commenti

Esprimi il tuo giudizio su questo script:

Per procedere devi essere autenticato.

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.




IN EVIDENZA
MISC