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

Développement SQL Server Discussion :

sp_xml_preparedocument LTrim automatique


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 193
    Par défaut sp_xml_preparedocument LTrim automatique
    Bonjour,

    J'ai une question sur la procédure stockée sp_xml_preparedocument, j'ai des champs textes qui pour une raison qui m'échappe commence par un caractère blanc (espace).

    Je trouve cela ridicule mais malheureusement je ne suis pas l'utilisateur finale et je n'ai pas conçu le modèle initiale.

    Enfin, il se fait que je dois transposer ces données en XML, jusque la pas de problème. aucune perte

    Je dois maintenant réinsérer mes données et la ça se complique.

    J'utilise la procédure stockée sp_xml_preparedocument, et mon document xml qui au départ avait un blanc pour mon champs, n'en a plus une fois le document préparer et traiter par openXML.

    Mais pour résumer un long discours voici un exemple : (qui correspond presque a ce que je fais) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    DECLARE @idoc int
    DECLARE @doc varchar(1000)
    SET @doc ='
    <ROOT>
    <Customer CustomerID=" VINET" ContactName="Paul Henriot">
       <Order OrderID="10248" CustomerID=" VINET" EmployeeID="5" 
               OrderDate="1996-07-04T00:00:00">
          <OrderDetail ProductID="11" Quantity="12"/>
          <OrderDetail ProductID="42" Quantity="10"/>
       </Order>
    </Customer>
    <Customer CustomerID="LILAS" ContactName="Carlos Gonzlez">
       <Order OrderID="10283" CustomerID="LILAS" EmployeeID="3" 
               OrderDate="1996-08-16T00:00:00">
          <OrderDetail ProductID="72" Quantity="3"/>
       </Order>
    </Customer>
    </ROOT>'
    --Create an internal representation of the XML document.
    EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
    -- SELECT stmt using OPENXML rowset provider
    SELECT *
    FROM   OPENXML (@idoc, '/ROOT/Customer/Order/OrderDetail',2)
             WITH (OrderID       int         '../@OrderID',
                   CustomerID  varchar(10) '../@CustomerID',
                   OrderDate   datetime    '../@OrderDate',
                   ProdID      int         '@ProductID',
                   Qty         int         '@Quantity')
    Le résultat obtenu est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    10248	VINET	1996-07-04 00:00:00.000	11	12
    10248	VINET	1996-07-04 00:00:00.000	42	10
    10283	LILAS	1996-08-16 00:00:00.000	72	3
    Comment puis je faire pour ne pas perdre mon blanc, dynamiquement je parle bien sur et sans prédicat des caractère interdit.

    Merci de votre aide

  2. #2
    Membre chevronné Avatar de agemis31
    Profil pro
    DBA
    Inscrit en
    Octobre 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : DBA

    Informations forums :
    Inscription : Octobre 2007
    Messages : 399
    Par défaut
    Bonjour,

    transposer ces données en XML
    Je n'ai pas bien saisi si vous récupérez du xml avec un schéma prédéfini ou si vous fabriquez une chaîne de caractères.

    Est ce que transformer CustomerID en noeud et demander au parser de le rendre tel quel conviendrait ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <ROOT>
    <Customer ContactName="Paul Henriot">
       <CustomerID><![CDATA[ VINET]]></CustomerID>
       <Order OrderID="10248" EmployeeID="5" 
               OrderDate="1996-07-04T00:00:00">
          <CustomerID><![CDATA[ VINET]]> </CustomerID>
          <OrderDetail ProductID="11" Quantity="12"/>
          <OrderDetail ProductID="42" Quantity="10"/>
       </Order>
    </Customer>
    <Customer  ContactName="Carlos Gonzlez">
       <CustomerID><![CDATA[LILAS]]></CustomerID>
       <Order OrderID="10283"  EmployeeID="3" 
               OrderDate="1996-08-16T00:00:00">
          <CustomerID><![CDATA[LILAS]]></CustomerID>
          <OrderDetail ProductID="72" Quantity="3"/>
       </Order>
    </Customer>
    </ROOT>'
    --Create an internal representation of the XML document.
    EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
    -- SELECT stmt using OPENXML rowset provider
     
     
    SELECT *
    FROM   OPENXML (@idoc, '/ROOT/Customer/Order/OrderDetail',2)
             WITH (OrderID       int         '../@OrderID',
                   CustomerID  varchar(10) '../CustomerID',
                   OrderDate   datetime    '../@OrderDate',
                   ProdID      int         '@ProductID',
                   Qty         int         '@Quantity')
    @+

Discussions similaires

  1. [VB6] [Interface] Redimensionnement automatique
    Par ychalan dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/09/2002, 18h32
  2. BDE : Configurer automatiquement le NETDIR
    Par Harry dans le forum Paradox
    Réponses: 10
    Dernier message: 29/07/2002, 11h33
  3. Génerer automatiquement plusieurs fichier .doc
    Par brunovitch dans le forum QuickReport
    Réponses: 3
    Dernier message: 09/07/2002, 08h19
  4. Re-dimensionnement automatique de composants
    Par ludo_7 dans le forum C++Builder
    Réponses: 10
    Dernier message: 16/05/2002, 16h35

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