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

braWeb Messages postés 111 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 28 octobre 2014 - 13 nov. 2006 à 22:08
blatour Messages postés 26 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 11 décembre 2006 - 14 nov. 2006 à 09:46
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/40310-exemple-d-import-export-de-donnees-d-une-table-vers-le-format-xml

blatour Messages postés 26 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 11 décembre 2006
14 nov. 2006 à 09:46
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 ;-)
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
14 nov. 2006 à 08:18
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...
braWeb Messages postés 111 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 28 octobre 2014
14 nov. 2006 à 00:16
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
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
13 nov. 2006 à 23:00
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...
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
13 nov. 2006 à 22:54
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.
braWeb Messages postés 111 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 28 octobre 2014
13 nov. 2006 à 22:08
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
Rejoignez-nous