IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

[SQL SERVER 2000] Récupérer le FOR XML


Sujet :

MS SQL Server

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Points : 406
    Points
    406
    Par défaut [SQL SERVER 2000] Récupérer le FOR XML
    Bonjour à tous,

    je voudrais savoir si vous savez comment récupérer le contenu du retour d'une requête du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM maTable FOR XML AUTO
    Je veux retourner dans une variable le flux XML généré par SQL SERVER.
    Si vous avez des tutoriaux ou des exemples, pourriez vous me transmettre des lien merci.
    Bon courage pour la suite.

  2. #2
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mars 2002
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2002
    Messages : 54
    Points : 58
    Points
    58
    Par défaut
    Si tu passes par une application qui utilise une API d'accès aux données genre ADO.NET, pas de problème : le résultat sera sérialisé sous forme de flux XML.
    Si tu veux récupérer le résultat sous forme d'un flux XML au sein même de SQL Server 2000 (dans une procédure stockée, par ex.), les choses se compliquent.

    La clause FOR XML ne te retourne pas de la chaîne au format XML, mais un jeu de résultat comme un autre (comme le fait un SELECT classique). Une requête SELECT col1, col2 FROM tbl ne te retourne pas une chaine. La même requête avec la clause FOR XML non plus.

    Il existe une astuce, mais que je déconseille fortement dans un environnement de production (je la cite pour info). C'est de déployer ta proc stoc sur serveur distant et d'appeler cette SP via un serveur lié utilisant un driver ODBC. Le driver ODBC va sérialiser le jeu de résultat en chaine. Compte tenu des containtes de déploiement et des performances, c'est à ne pas faire en prod !

    Il te reste donc deux solutions :
    - passer sur SQL 2005 : XML est un type de données,
    - déporter ton traitement vers une appli qui utilisera une API d'accès aux données qui te permettra de sérialiser ton jeu de résultat en un flux de caractères.

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/10/2008, 14h49
  2. Réponses: 1
    Dernier message: 16/11/2007, 22h28
  3. [SQL Server 2000] Récupérer dernier caractère
    Par Invité dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/07/2007, 14h35
  4. Réponses: 2
    Dernier message: 21/03/2007, 16h26
  5. Réponses: 8
    Dernier message: 25/01/2006, 12h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo