XML + SqlServer [Résolu]

Messages postés
492
Date d'inscription
jeudi 28 août 2003
Statut
Membre
Dernière intervention
25 avril 2007
- - Dernière réponse : 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
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
261
Date d'inscription
mercredi 3 mai 2006
Statut
Modérateur
Dernière intervention
11 janvier 2010
2
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 125 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_skweeky
Messages postés
261
Date d'inscription
mercredi 3 mai 2006
Statut
Modérateur
Dernière intervention
11 janvier 2010
2
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 125 internautes nous ont dit merci ce mois-ci

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