SQL Server 2000 exécute des requêtes puis formate les résultats comme un document XML, directement ou depuis des procédures stockées. Pour y parvenir, utilisez une nouvelle clause de l’instruction “Select” : “FOR XML”. De même, il est possible de réinsérer les données d’un document ou d’un flux XML dans une base de données SQL Server 2000 en recourant aux procédures stockées et aux fonctions système. Puissantes, ces nouvelles fonctions simplifient considérablement la mise en place de mécanismes d’échanges de données dans vos applications internet ou de commerce électronique.
1. Testez la clause “FOR XML”
Une fois SQL Server 2000 installé et lancé, rendez-vous dans l’analyseur de requêtes. Exécutez-y la requête “Select Customerid, Companyname From Customers FOR XML AUTO” sur la base de données de démonstration Northwind puis observez le résultat. Vous obtenez alors un flux de données XML (semblable à celui de la capture d’écran 1) et non un résultat relationnel (mettant en rapport des lignes et des colonnes).
2. Placez une requête “FOR XML” dans une page ASP
Dans un projet Visual Interdev, créez une nouvelle page ASP et saisissez le code que nous publions dans l’encadré A, page suivante. Dans un premier temps, une connexion vers un serveur SQL 2000 est réalisée (Objet c). Les requêtes SQL et de flux XML (sQuery) sont ensuite définies ; la seconde alimente l’objet flux “Stream”, contenant le flux XML renvoyé par l’exécution de la requête. Contrairement à une requête SQL classique, la requête “FOR XML” que vous exécutez ne vous retourne pas l’habituel flux tabulaire de données (Recordset ADO), mais un flux continu de données XML.
3. Invoquez la requête “FOR XML”
La dernière partie du code utilise une commande “ADO” (ActiveX Data Object) de façon particulière : la propriété “Command Text” fait place à la propriété “CommandStream”, qui sert à préciser le flux d’entrée utilisé pour la commande “ADO”. La propriété “Dialect” précise le format de sortie de ce flux (en l’occurrence XML), tandis que la propriété “Output Stream” indique la destination vers laquelle il doit être redirigé (en l’occurrence, vers l’objet “Response”, représentation objet de la page ASP traitée et retournée au navigateur). Exécutez la commande avec l’option “1024” (constante “adExecuteStream”), qui spécifie que vous attendez un flux en lieu et place d’un “Recordset”.
4. Évaluez votre page ASP
Visualisez votre page ASP dans un navigateur doté d’un analyseur (parseur) XML, tel Microsoft Internet Explorer (IE) 5.0. Vous aurez alors un résultat analogue à l’écran publié ci-contre. La présentation de ce résultat est inhérente à IE 5.0, qui représente nativement un document XML dans sa forme arborescente. Par extension, essayez de lier votre document XML à un document XSL (eXtensible Stylesheet Language) de façon à assurer, par exemple, une présentation HTML adéquate (pour plus d’informations sur XSL, reportez-vous à la mise en ?”uvre Créer des documents internet en XML, XSL et CSS, publiée dans le n?’41 d’ Internet Professionnel, en avril 2000).
5. Insérez un document XML dans une table SQL Server
Pour terminer la boucle d’un échange de données interapplicatif, vous devez maintenant mettre en ?”uvre la manipulation inverse, à savoir réimporter les informations d’un document XML dans une table SQL Server 2000. Dans une fenêtre de l’analyseur de requêtes SQL Server, assurez-vous que la base de données Northwind est bien sélectionnée. Saisissez ensuite le code publié en haut de la page dans l’encadré B. Exécutez-le et observez le résultat.
6. Comprenez votre code
Dans la première partie du code, déclarez un document XML simple (“@doc”) à 2 niveaux arborescents (les sites et les contacts). Le document XML utilise des attributs pour décrire les données des sites et des contacts, mais il aurait été possible de les représenter sous forme de balises indépendantes (
🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.