Mi riaggancio ai miei precedenti post (questo e questo) riguardanti la possibilità da ASP di convertire un recordset in un documento XML da far poi interpretare al substrato Javascript utilizzato dalle applicazioni AJAX.

SQL Server 2005 semplifica ancora di più le operazioni: la conversione in XML è eseguita infatti direttamente dal motore SQL, basta aggiungere alla fine della query il costrutto FOR XML, esempio:
SELECT * FROM ORDINI FOR XML AUTO

La parola chiave AUTO definisce la modalità di output del documento.

Le modalità di output disponibili sono le seguenti:

AUTO: SQL Server scrive la riga in nodo dello stesso nome della tabella, e i valori delle colonne come attributi.
Nel caso nella query siano presenti join con altre tabelle, l'output risulterà nidifcato, senza la possibilità di controllare la nidificazione, tuttavia con la possibilità di fare in modo che i valori delle colonne vengano restituiti come elementi anzichè come attributi, specificando l'opzione ELEMENTS:
SELECT * FROM ORDINI FOR XML AUTO,ELEMENTS

RAW: Produce un ouput con il nodo corrispondente alla riga chiamato sempre 'row' e non si occupa di nidificare le tabelle in join.
L'opzione ELEMENTS sortisce lo stesso effetto della modalità AUTO.

EXPLICIT: Comporta una formattazione particolare della query, che deve rispettare i seguenti requisiti:

  • La prima colonna deve essere un numero di TAG definito

  • La seconda colonna un numero di PARENT definito.


Quest'ultima modalità è senz'altro la piu' difficile da ottenere, ma di sicuro la piu' potente e precisa in fatto di formattazione finale.

A breve dedicherò un post esclusivamente a questa modalità.