XML + SqlServer

Résolu
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 - 31 mai 2006 à 18:40
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 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... :(

Merci pour toute vos lumières...
AbriBus

5 réponses

cs_skweeky Messages postés 259 Date d'inscription mercredi 3 mai 2006 Statut Membre Dernière intervention 11 janvier 2010 8
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.

-----------------
Christian Robert
Winwise
3
cs_skweeky Messages postés 259 Date d'inscription mercredi 3 mai 2006 Statut Membre Dernière intervention 11 janvier 2010 8
8 juin 2006 à 10:10
Avec FOR XML AUTO, ELEMENTS, mais tu ne pas mixer éléments et attributs...

Avec FOR XML EXPLICIT, tout est possible mais très compliqué.

Avec SQL Server 2005, tout est possible :o)

-----------------
Christian Robert
Winwise
3
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
1 juin 2006 à 12:41
Nikel !! c'est tres bien merci.
Je vais fouiller un peu mais saurais tu ou je pourrais trouver une liste de ces fameux parametres ?

Merci encore ;)
0
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
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...

Merci
Abribus
0
Rejoignez-nous