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

Macros et VBA Excel Discussion :

SQLITE - XML Blob [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    graphisme & impression
    Inscrit en
    Mars 2011
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : graphisme & impression

    Informations forums :
    Inscription : Mars 2011
    Messages : 118
    Par défaut SQLITE - XML Blob
    Bonjour à tous,

    Je cherche comment insérer des données XML dans une base de données SQLite depuis une macro VBA.
    J'ai choisir d'insérer mes données dans un champs BLOB.

    Voici un extrait de mon code, la fonction insert fonctionne correctement (j'insère une String).
    Par contre la fonction get_five_last_record me retourne tous les champs sauf le BLOB. Est-ce que quelqu'un peut m'aider?

    D'avance, merci beaucoup de votre aide.
    Très bonne journée et meilleures salutations.
    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
     
    'insert mesure proof
    'this function insert a XML document, the id is the current date
    Public Function insert(docXML As MSXML2.DOMDocument30) As ADODB.Recordset
        Dim sql_str As String
        Dim currente_date As Date
        Dim result As ADODB.Recordset
        currente_date = Now
        sql_str = "INSERT INTO proof_mesures ('due_date', 'xml_data') VALUES ('" & currente_date & "', '" & docXML.XML & "')"
        Set result = pConn.Execute(sql_str)
        Set insert = result
    End Function
     
     
    'get 5 last mesure proof
    Public Function get_five_last_record() As ADODB.Recordset
        Dim result As ADODB.Recordset
        Dim sql_str As String
        sql_str = "SELECT xml_data FROM proof_mesures ORDER BY due_date DESC LIMIT 5"
        Set result = pConn.Execute(sql_str)
     
        Set get_five_last_record = result
    End Function

  2. #2
    Invité
    Invité(e)
    Par défaut
    bonjour,
    que n'arrive tu pas à faire?
    te connecter a la base de données?
    ou Insérer le xml?

  3. #3
    Membre confirmé
    Homme Profil pro
    graphisme & impression
    Inscrit en
    Mars 2011
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : graphisme & impression

    Informations forums :
    Inscription : Mars 2011
    Messages : 118
    Par défaut merci
    Bonjour,

    Merci pour ta réponse. Je n'arrive pas à récupérer le XML!
    De plus, je ne sais pas si c'est correct de faire "docXML.XML" avant l'enregistrement dans le bob?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sql_str = "INSERT INTO proof_mesures ('due_date', 'xml_data') VALUES ('" & currente_date & "', '" & docXML.XML & "')"

  4. #4
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
    Dim oXML As MSXML2.DOMDocument
    Dim oNode As MSXML2.IXMLDOMNode
    Set oXML = New MSXML2.DOMDocument
    Dim xm As XMLHTTP
    oXML.async = False
    oXML.Load "C:\OEAT\compiled.xml"
    insert oXML
    End Sub
    http://arkham46.developpez.com/artic...b/?page=page_4

  5. #5
    Membre confirmé
    Homme Profil pro
    graphisme & impression
    Inscrit en
    Mars 2011
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : graphisme & impression

    Informations forums :
    Inscription : Mars 2011
    Messages : 118
    Par défaut Merci
    Hello,

    Merci beaucoup pour ta réponse. J'arrive à insérer le XML dans la base de données. Si je fais une requête SQL j'obtiens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "<?xml version=""1.0"" encoding=""UTF-16""?>
    <network><node>one</node><nodes><node>1</node><node>2</node></nodes><node>two</node></network>
    "
    Par contre quand j'utilise la fonction "get_five_last_record", je reçois ça:
    : Bookmark : <Le jeu d'enregistrements en cours ne prend pas en charge les signets. Il s'agit peut-être d'une limitation du fournisseur ou du type de curseur sélectionné.> : Variant

    Et je comprends pas ce que ça veut dire. Même avec des recherches
    Merci

  6. #6
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Public Function get_five_last_record() As ADODB.Recordset
     
        Dim sql_str As String
        Set get_five_last_record = New ADODB.Recordset
        sql_str = "SELECT xml_data FROM proof_mesures ORDER BY due_date DESC LIMIT 5"
        get_five_last_record.Open sql_str, pConn, adOpenDynamic, adLockReadOnly
     
     
    End Function
    à toi de gérer les paramètres: adOpenDynamic,adOpenForwardOnly...,adLockReadOnly...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quel SGBD choisir : Mysql VS sqlite VS XML ?
    Par rafik3615 dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 06/02/2008, 08h39
  2. Insertion de BLOB,CLOB,xml avec oracle 10g
    Par Dx_ter dans le forum Coldfusion
    Réponses: 1
    Dernier message: 10/07/2007, 11h34
  3. Réponses: 2
    Dernier message: 29/05/2007, 08h31
  4. [SQLite] Comment lire un champ BLOB ?
    Par Pierre8r dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/06/2006, 10h20
  5. Réponses: 1
    Dernier message: 09/06/2006, 12h04

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