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

Bases de données Delphi Discussion :

FireDac et fichier XML


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 228
    Points : 93
    Points
    93
    Par défaut FireDac et fichier XML
    bonjour à tous,
    je me lance dans FireDac, j'ai une application de base de données utilisant les TClientDataSet sur mon poste, je vais dans un premier temps devoir mettre ces données sous serveur, et dans un second temps transformer cette appli en multi périphériques (android et Windows) comment puis-je connecter mes données xml dans Firedac ?

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    réponse simple avec FDMemTable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FDMemTable1.LoadFromFile('c:\customers.xml', sfAuto);
    il ne faut pas oublier de rajouter un fdStanStorageXMLLink ou d'indiquer d'utiliser l'unité correspondante : FireDAC.Stan.StorageXML

    pour avoir fait des essais, c'est loin d'être évident !
    tout d'abord il y a la mise en garde : il faut que le fichier XML soit bien formé et "stand-alone" selon la documentation sic.
    trouble ....
    j'ai fait un test avec les fichiers xml fournis dans le répertoire C:\Users\Public\Documents\Embarcadero\Studio\19.0\Samples\Data cela ne fonctionne pas
    Citation Envoyé par erreur
    '[FireDAC][Stan]-712. Cannot read [Manager] object.'
    la réponse à cette erreur c'est que le format de ces fichiers XML n'est pas "well formed", après quelques recherches je suis parvenu à ce billet blog
    qui répond à tout ce questionnement.

    je vous laisse le loisir de chercher les différences entre le "vieux" format XML et celui supporté par Firedac un indice déjà si vous faites les manipulations indiquées dans le blog, la taille de fichier est différente

    [EDIT] il doit certainement y avoir un moyen de faire en jouant sur les RessourcesOptions de FDMemTable mais l'aide sur celles-ci est très "discrète"

    Dés lors, je pose la question, pourquoi voulez vous passez du ClientDataset à Firedac ? le TClientDataset peut très bien être utilisé avec des programmes FMX. Ne serait-ce pas plutôt Firemonkey et pour lier les données contenues dans un ensemble de données quelconque l'utilisation des Livebindings qui vous poserait problème ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 228
    Points : 93
    Points
    93
    Par défaut
    Bonjour, et merci de prendre le temps de me répondre.

    j'ai toujours utilisé les TClientDataSet car cela me suffisait et je trouve très facile à utiliser et gérer pour des bases de données sans trop de données, sans doute aurais-je dû utiliser une vrai BDE ?
    mon souhait est de mettre mes bases de données sur un serveur pour une utilisation avec plusieurs "clients". je souhaite chargé ces fichiers XML dans des ClientDataSet et sauvegarder ces fichiers tout simplement sous serveur distant après modifications. les clients doivent à terme pouvoir utiliser ces données sur une tablette Android.

    et pour finir je ne suis pas à l'aise à ce jour avec l'utilisation des Livebindings mais je peux m'y mettre...

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    re
    Citation Envoyé par Georges P Voir le message
    j'ai toujours utilisé les TClientDataSet car cela me suffisait et je trouve très facile à utiliser et gérer pour des bases de données sans trop de données, sans doute aurais-je dû utiliser une vrai BDE ?
    BDE, houla j'espère que c'est pour SGBDR et non Borland Database Engine
    Citation Envoyé par Georges P Voir le message
    mon souhait est de mettre mes bases de données sur un serveur pour une utilisation avec plusieurs "clients". je souhaite chargé ces fichiers XML dans des ClientDataSet et sauvegarder ces fichiers tout simplement sous serveur distant après modifications. les clients doivent à terme pouvoir utiliser ces données sur une tablette Android.
    donc pas vraiment un SGBDR mais plutôt une "hébergement" de données voire un serveur REST ? (programmation multi-tiers)

    Citation Envoyé par Georges P Voir le message
    et pour finir je ne suis pas à l'aise à ce jour avec l'utilisation des Livebindings mais je peux m'y mettre...
    Obligé d'y passer pour lié les données aux composants dans des programmes FMX ou alors vous allez devoir ajouter des lignes et des lignes de code.
    Je suis en pleine rédaction d'un tutoriel (un de plus dans la série Livebindings) sur le sujet Livebindings et Données mais je ne me vois pas l'achever avant Noël
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 228
    Points : 93
    Points
    93
    Par défaut
    merci encore pour vos réponses.

    je lierai votre tuto avec plaisir quand il sortira, je surveille sa sortie sur ce site.

    je pensais pouvoir tester quelques choses avec le composant TDataSetProvider... c'est aussi son travail de à ce composant je crois, mais j'ai un peu de mal avec assembler le tout.

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 021
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Citation Envoyé par Georges P Voir le message
    je lierai votre tuto avec plaisir quand il sortira, je surveille sa sortie sur ce site.
    pour ce qui est de ce tuto, il faudra certainement regarder sous le sapin. Toutefois le tutoriel proposé par Embarcadero, (et certaines vidéos) couvre les besoins élémentaires (en gros les équivalents des TDBLabel,TDBEdit,TDBGrid,TDBNavigator, TDBMemo, TDBImage) surtout si l'on a une version pro ou plus du dernier RadStudio avec le lieur visuel c'est presque un jeu d'enfant (pour peu d'avoir deux écrans et une machine assez puissante).
    Un bémol, les liaisons rapides ne sont pas toujours la meilleure solution.

    C'est plus dans le détail que cela pêche par exemple : les TDBComboBox, TDBLookupComboBox ne sont pas forcément évidents
    De nouvelles possibilités s'ouvrent à nous également par exemple avec les TListView (voir mes tutos Episode 4 Episode3 et en annexe ce dernier) même si aucun n'utilise de bases de données ces trois sont les introductions à mon prochain sujet.


    je pensais pouvoir tester quelques choses avec le composant TDataSetProvider... c'est aussi son travail de à ce composant je crois, mais j'ai un peu de mal avec assembler le tout.
    Alors là, je vois pas penchez vous plutôt (dans l'optique d'une application muti-os) sur les composants LiveBindings de la palette (BindSourceDB, PrototypeBind Source ....) et, selon ce que vous avez indiqué les composants REST (je pense en particulier à cette discussion et aux liens que j'ai pu y mettre)
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 228
    Points : 93
    Points
    93
    Par défaut
    Bonjour,
    j'ai la version pro Berlin ainsi que les compléments Firedac et Mobile. merci pour les conseils je vais regarder les tuto et voir côté composants LiveBindings. en attendant le père Noel
    Encore merci et bon WE.

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

Discussions similaires

  1. Recuperation du fichier xml
    Par Geulderack dans le forum XMLRAD
    Réponses: 10
    Dernier message: 28/02/2003, 12h06
  2. Insertion dans un fichier XML
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 4
    Dernier message: 27/02/2003, 18h16
  3. Lire un attribut dans un fichier XML en C++
    Par ti.k-nar dans le forum XML
    Réponses: 2
    Dernier message: 14/10/2002, 16h22
  4. [Kylix] Composant IBM pour fichiers XML
    Par Mister Nono dans le forum EDI
    Réponses: 1
    Dernier message: 29/09/2002, 21h28
  5. Balises HTML dans un fichier XML
    Par Bastet79 dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 04/09/2002, 16h29

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