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

C++Builder Discussion :

Enregistrer une table Access dans un fichier "XML"


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut Enregistrer une table Access dans un fichier "XML"
    Bonjour

    Bonjour,

    Je cherche à enregistrer une table access dans un fichier "XML", et dans un autre programme je cherche à insérer le contenu du fichier "XML" dans une autre table access de même format.

    Ya t'il quelqu'un qui a déjà tenter le coup ?

    Merci d'avance

  2. #2
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Pour l'enregistrement, j'ai utiliser la methode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaTable -> SaveToFile("c:\\test.xml") ;

    Pour la lecture, j'ai utiliser la methode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaTable2 -> LoadFromFile("c:\\test.xml") ;

    Je retrouve bien les enregistrements dans ma table, mais quand je quitte l'application et je relance l'execution, ma table est vide ???

    Ya t'il une explication !?!?

  3. #3
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Sur le Site un lien sur un tuto qui comporte plusieurs liens, une tres longue lecture

  4. #4
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Citation Envoyé par kmaniche
    Je retrouve bien les enregistrements dans ma table, mais quand je quitte l'application et je relance l'execution, ma table est vide ???

    Ya t'il une explication

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Citation Envoyé par kmaniche
    Ya t'il une explication
    Il y a quoi dans ton fichier XML ? Ca m'étonnerais franchement que le contenu de ton fichier soit du XML...(même si dans ton cas ça ne devrait rien avoir à voir avec le fait que ta table soit vide).

  6. #6
    say
    say est déconnecté
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut
    Citation Envoyé par Neilos
    Il y a quoi dans ton fichier XML ? Ca m'étonnerais franchement que le contenu de ton fichier soit du XML...(même si dans ton cas ça ne devrait rien avoir à voir avec le fait que ta table soit vide).
    tu m'étonnes!!! si le savetofile s'organise pr mettre en xml comme un grand, je me suis fait chier pour rien...

    allez, suis sympa
    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
    32
    33
    34
    void __fastcall ThreadExport::XMLExport(TDataSet * source,AnsiString dest)
    {
    SetMax(source->RecordCount);
     TXpObjModel* DOM = new TXpObjModel(NULL);
     TXpElement* elm;
     TXpElement* subelm;
     
     //Création de la balise XML
     DOM->FormattedOutput = true;
     DOM->Document->AppendChild(DOM->Document->CreateProcessingInstruction("xml","version =\"1.0\""));
     
     //Création de la balise root
     elm = DOM->Document->CreateElement("RootDocument");//ExtractFileName(dest));
     //DOM->Document->AppendChild(elm);
     
     //Ajout des enregistrements
     source->First();
     for (int t = 0; t < source->RecordCount; t++)       // nb d'enregistrements de la requête
        {
           subelm = elm->CreateChildElement("Entry");
           for (int i = 0; i < source->FieldCount; i++)     // ... et son nb de champs
               subelm->CreateChildElement(source->Fields->Fields[i]->DisplayName)
                            ->CreateChildText(source->Fields->Fields[i]->AsString);
           source->Next();
           Synchronize(Progress);
        }
     DOM->Document->AppendChild(elm);
     //Sauvegarde de l'arbre
     DOM->SaveToFile((dest.Pos(ExtractFileExt(".xml")) != 0
                            ?dest.SubString(0,dest.Pos(ExtractFileExt(".xml"))-1)
                            :dest)
                            +".xml");
     delete DOM;
    }
    A titre d'info, j'utilise XMLPartner

    le format du fichier en sortie :
    (pas hyper généric, je le conçois)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <RootDocument>
      <Entry>
        <nom_du_champ1>    </nom_du_champ1>
        <nom_du_champ2>    </nom_du_champ2>
        <nom_du_champ3>    </nom_du_champ3>
    [...]
      </Entry>
    </RootDocument>

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Par défaut
    Pas mal, c'est bien XMLPartner je ne connais pas du tout ?

  8. #8
    Membre éprouvé Avatar de cfdev
    Homme Profil pro
    Passionné
    Inscrit en
    Octobre 2004
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Passionné

    Informations forums :
    Inscription : Octobre 2004
    Messages : 220
    Par défaut
    Lut,

    je suis interessé par la solution d'import avec le Dataset si ca fonctionne...
    mais je ne l'ai jamais utilisé, comment faut-il le parametrer ?

    merci

  9. #9
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 531
    Par défaut
    En import tu n'as rien à paramétrer, il suffit que tes champs correspondent:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ADODataSet1->LoadFromFile("C:\\Table.xml");

Discussions similaires

  1. taille d'une table access dans la base
    Par chris401 dans le forum Access
    Réponses: 6
    Dernier message: 13/09/2006, 16h56
  2. Réponses: 6
    Dernier message: 16/06/2006, 13h22
  3. Réponses: 5
    Dernier message: 25/04/2006, 09h33
  4. enregistrer une liste chainée dans un fichier?
    Par ALF-Teams dans le forum C
    Réponses: 7
    Dernier message: 08/03/2006, 18h42

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