cs_AbriBus
Messages postés492Date d'inscriptionjeudi 28 août 2003StatutMembreDernière intervention25 avril 2007
-
31 mai 2006 à 18:40
cs_AbriBus
Messages postés492Date d'inscriptionjeudi 28 août 2003StatutMembreDernière intervention25 avril 2007
-
9 juin 2006 à 21:23
Salut,
Je me met au xml, et c'est vraiment cool mais je me demandais s'il était possible de faire des requetes qui génèrent du xml avec SQL serveur 2000.
Les infos que j'ai trouvée son plutot floues... parfois c'est non, parfois c'est oui, mais les exemple marchent pas... :(
cs_skweeky
Messages postés259Date d'inscriptionmercredi 3 mai 2006StatutMembreDernière intervention11 janvier 20108 1 juin 2006 à 11:28
Oui, c'est possible sur SQL Server 2000, mais assez limité...
On peut par le biais de ce genre de requête :
SELECT monchamp1, monchamp2
FROM matable
FOR XML AUTO
Il y a d'autres paramètres que l'on peut passer à FOR XML.
Le hic c'est que c'est très dur de sortir de l'XML comme l'on veut avec cette clause (imbriquer des éléments, mettre certains champs en attribut, etc.).
Dans SQL Server 2005 elle a bien évolué, dautant qu'Express supporte aussi ces fonctions.
cs_AbriBus
Messages postés492Date d'inscriptionjeudi 28 août 2003StatutMembreDernière intervention25 avril 20075 7 juin 2006 à 17:58
Le resultat que j'obtient est globalement correct mais, comme tu le soulignais, il y a quelques probleme d'imbrication... ce qui, a la limite n'est pas tant un probleme que ca pour moi et pour le moment. En revanche, j'ai 2 petits soucils:
J'ai constaté que ce qui apparaissait dans la clause SELECT était mis en attribut dans la balise suivant cette forme:
<nom_table attribu_1="[valeur_attribu]"/>
Ainsi, une requete "SELECT nom, prenom, numtel FROM contact LEFT JOIN numero ON numero.contact_id = contact.contact_id FOR XML AUTO" va généré le flux suivant:
<contact nom="duran" prenom="bertran">
<numero numtel="00.00.00.00.00"/>
</contact>
<contact nom="dupres" prenom="marc">
<numero numtel="11.11.11.11.11"/>
<numero numtel="22.22.22.22.22"/>
</contact>
Partant de la, je me suis apercu que sqlserv me renomait mes attribus :S, ce qui pour la meme requete me sort un :
<contact nomX5021_x="duran" prenom="bertran">
<numero numtel="00.00.00.00.00"/>
</contact>
(il va sans dire que c'est quelque peu genant)
ou alors, carrement il me vire des attribus qu'il devrait mettre, ce qui donne, les deux problemes combinés:
<contact nomX5021_x="duran">
<numero/>
</contact>
Ce qui, pour le coup devient carrement vexant...
quelqu'un a t il deja rencontré ce probleme ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_AbriBus
Messages postés492Date d'inscriptionjeudi 28 août 2003StatutMembreDernière intervention25 avril 20075 9 juin 2006 à 21:23
J'ai mis reponse acceptée meme si en réalité ca ne repond pas tout a fait a ma question parceque le post que tu as fait m'ai fait gagné un enorme temps de recherche. Il continu a me renomer des champs... sauf que au lieu que ce soit l'atribut maintenant c'est la balise lol... ceci dit j'aime beaucoup l'occurence que tu as fais à ELEMENTS, je n'utilise plus que ca.
Je suis preneur pour toutes autres bonne suggestions de ce genre...