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
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.







Stampa
Download 



