Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

EXEMPLE D'IMPORT / EXPORT DE DONNÉES D'UNE TABLE VERS LE FORMAT XML


Information sur la source

Description

Cliquez pour voir la capture en taille normale
Ce source a été réalisé à la demande de BraWeb.

Ce programme est un exemple d'exportation directe de données d'une table (quelque soit la base de données) vers un fichier Xml et d'importation des données contenues dans ce fichier en passant par une table temporaire en mémoire (à ce moment il sera possible de retraiter les données si besoin).

Pour ce faire, j'ai utilisé 2 composants freeware dont je remercie les auteurs pour leur excellent travail.

N'hésitez pas à aller voir leur site :
  http://tech.groups.yahoo.com/group/xmldataset/ et http://tech.groups.yahoo.com/group/memtable/

Les étapes pour la compilation :

  1) Décompresser le contenu de l'archive dans un dossier (avec l'option de création des dossiers)
  2) Installer les composants kbMemTable et XmlDataSet dans Delphi qui se trouvent dans le dossier "Package à installer"
  3) Ouvrir et compiler le projet "TestXml"

En espérant que ce code aide d'autre développeur (et qu'il n'y a pas eu de source similaire lol).

Boris


 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   TestXML
    • Bdd
    •   Package à installer
      • kbmmemtb253b.zipTélécharger ce fichier [Réservé aux membres club]177 845 octets
      • XMLDATASET_1.22.zipTélécharger ce fichier [Réservé aux membres club]48 336 octets
    •   Src
      • frmPrin.ddpTélécharger ce fichier [Réservé aux membres club]51 octets
      • frmPrin.dfmTélécharger ce fichier [Réservé aux membres club]3 292 octets
      • frmPrin.pasTélécharger ce fichier [Réservé aux membres club]Voir ce fichier5 571 octets
    • Xml
    • TestXml.cfgTélécharger ce fichier [Réservé aux membres club]Voir ce fichier386 octets
    • TestXml.dofTélécharger ce fichier [Réservé aux membres club]Voir ce fichier2 588 octets
    • TestXml.dprTélécharger ce fichier [Réservé aux membres club]Voir ce fichier204 octets
    • TestXml.resTélécharger ce fichier [Réservé aux membres club]876 octets

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de braWeb le 13/11/2006 22:08:41

Merci BLATOUR de accepter ma demande

   malheureusement je suis sur delphi7 est tes composant ne sont pas compatible

Code  bien commenter  et lisible je crois que il y a avec Delphi des composant qui transfère les contenu des BD dans des fichiers XML (voir dans le panel Data Access)

Mais la question qui se pose a comme bien peux aller la taille Maximale d'fichier XML  si on veux parler  d’archivage c’est le but de la source ?

Je suis ignorant dans les capacités des fichiers XML  
peux tu nous donnée un peux de détail

Merci

signaler à un administrateur
Commentaire de Delphiprog le 13/11/2006 22:54:42 administrateur CS

La suite de composants KbMemTable demande un gros travail d'adaptation pour fonctionner avec Delphi 7. Je n'ai donc pas pu l'essayer (par pure fainéantise, il faut bien l'avouer).
Quant à la suite TXmlDataSet, elle devra subir un lifting pour fonctionner sous Delphi .Net.
Malgré cela, on reconnait là un code de qualité où la simple lecture du source ainsi celle des commentaires en disent suffisamment sur le niveau de pratique.
Un petit regret : tu aurais pu mettre le code concernant l'importation et l'exportation dans une unité séparée, ce qui l'aurait rendu plus facilement réutilisable.
Félicitations.

signaler à un administrateur
Commentaire de Delphiprog le 13/11/2006 23:00:49 administrateur CS

Si je peux me permettre de répondre à Braweb, cela dépend de l'analyseur XML utilisé. L'analyseur de chez Microsoft charge tout le fichier XML en mémoire pour être rapide. Il existe d'autres analyseurs qui lisent les noeuds qu'au fur et à mesure des besoins (SAX par exemple). Ils consomment moins de mémoire mais sont donc aussi moins rapides (temps de lecture sur disque). Puis, il y a les analyseurs XPATH qui permettent d'accéder directement à un noeud. Mais là, je n'en sais pas plus sur la méthode employée.
Si quelqu'un veut compléter ou rectifier...

signaler à un administrateur
Commentaire de braWeb le 14/11/2006 00:16:20

Merci Delphiprog de cette explication c’est clair
Mais se que je veux avoir  es que c’est l’outils idéale pour l’archivage (la sauvegarde ) des Données importé d’une Big database.

  On est démarrer de cette discutions moi et BLATOUR l’outils d’archivage  a mes connaissances XML  est un langage semi-structurer  exploité plus dans le coté Web (a cause que il a une  structure d’arbre)  qui permet la faciliter de circulation des données venu d’une BD comme ceci
Server DATABASE---XML----client
Se problème de sauvegarde n’existe pas avec des SGBDR par ce que il ont son propre outils de sauvegarde
Mais les autres SGBD il n’existe pas  alors comment faire pour la sauvegarder on les copient complètement (BD ) ou les l’exporté  dans des fichiers XML  c’est on a choisir le  2eme Cas l’exporter alors quelle est la taille Maximale que peux accepter un document XML sachant que il c’est fichier semi-structuer et BD fichier structurer  

signaler à un administrateur
Commentaire de Delphiprog le 14/11/2006 08:18:06 administrateur CS

En matière de compacité, XML n'est surement pas le format idéal de stockage : il y a autant sinon plus de description des données que de données elles-mêmes.
En revanche, c'est aujourd'hui la clé de voûte de l'interopérabilité et c'est ce qui fait son fort.
Virtuellement, il n'existe pas de limite de volume pour un fichier XML.
Raisonnablement, il faut voir...
Pour la sauvegarde d'une BDD volumineuse, cela ira donc de la simple copie à l'archive compressée classique.
Mais bon, là on s'écarte du sujet de la source de Blatour et ce genre de discussion devrait se poursuivre plutôt sur le forum si tu es d'accord...

signaler à un administrateur
Commentaire de blatour le 14/11/2006 09:46:21

Bonjour,

Ben oui, nous codons principalement sous Delphi 6 pour le développement Win32 (par soucis d'interopérabilité avec nos anciens codes). D'ou les composants que nous utilisons.

Sinon concernant l'utilisation du Xml comme support de sauvegarde, il est clair que ce n'est pas forcement le  meilleur et le plus optimisé. Mais comme dit DelphiProg, il faut penser à l'interopérabilité et surtout obtenir un support qui puisse perdurer dans le temps (un fichier de données dans un format texte pourra toujours être lu facilement quelque soit les changements effectués dans le SGBDR).
Concernant la taille que peut prendre un fichier au format Xml, il faut savoir qu'il est aussi possible de compresser les fichiers résultants au format Zip ou autre (Voir le composant DelphiZip que vous pouvez trouver à l'adresse suivante : http://www.delphizip.org/index.html).

D'autre part, il est tout à fait possible de ne pas utiliser le composant TXmlDataSet. Il suffit de créer dynamiquement dans sa base de données une table temporaire qui fera office de table tampon à l'importation. Rien de bien compliqué.

Pour faire un système d'Archivage / Restauration, on peut aussi simplement utiliser une autre base de données ayant la même structure que celle d'origine et déplacer dedans les données.

DelphiProg : oui en effet j'aurais pu dissocier la partie exportation et importation dans des unités séparées. Mais là c'était juste pour montrer un petit exemple.

Enfin bon, la seule limitation en fait est notre imagination. Ne sommes nous pas des artistes ;-)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

import/export delphi excel [ par chec ] Import/Export d'un dossier de BD? [ par abdousoft ] Slt j'ai un dossier "data"contient des fichiers de BD "paradox" dans un repertoire EX :C:\GES\data     - Je cherche comment exporter(Sauvegarder</st webservice [ par tilab ] Je dois consommer un webservice avec delphi 7 Enterprise: http://xml.unione.ch/Ph4stdWebServices/ArtQueries.asmx?WSDLet envoyer un fichier XML &lt;?xm XML et Delphi [ par Lamarmottedu73 ] Bonjour tlm, j'ai un problème avec Delphi et le XML. J'utilise un TXMLDocument dans un thread qui scrute différent fichier. Le problème intervien sur Lecture d'un fichier xml [ par theantho07 ] Bonjour,Je developpe en delphi 2006.Je voudrais savoir comment on pourais faire pour lire tout mon fichier xml.Je suis totalement novice en la matiére Appliquer les requêtes SQL sur une table xml. [ par HAFTARIFOUAD ] Bonjour    Je développe une application de base de données à l'aide d'un TClientDataSet et un TDataSourceJ'aimerai bien appliquer un filtre sur plu Lecture fichier XML vers une ou plusieurs classes [ par furax13 ] Soit le fichier xml suivant :&lt;?xml version="1.0" encoding="utf-8"?&gt;&lt;GazCombustion&gt; &lt;Combustion Nom="Gaz_TOTO"&gt;  &lt;X_air&gt;   &lt; Créer un fichier xml [ par Jordan59 ] Bonjour,Au boulot, je dois générer un fichier d'export XML. J'ai la structure dans un fichier avec l'extension XSD.Je cherche donc à créer un fichier Tester l'existence d'un noeud XML avec TXMLDocument [ par christophedlr ] Bonjour,Voila, dans mon programme, je suis entrain de créer une classe (sans fiche) lisant des fichiers XML don j'ai besoin.Sauf que ceux-ci ont une s


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,312 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.