Utilizzare SQLXML per creare documenti XML con ASP

di Daniele Bochicchio, in ADO, XML,

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.

Approfondimenti


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

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata

I più letti di oggi