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

Composants VCL Delphi Discussion :

Alimentation alternative TDataSource


Sujet :

Composants VCL Delphi

  1. #1
    Inactif
    Homme Profil pro
    Développeur Delphi
    Inscrit en
    Mai 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Delphi

    Informations forums :
    Inscription : Mai 2013
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Alimentation alternative TDataSource
    Bonjour à tous.

    Comme mon titre l'indique presque, je cherche à remplacer l'alimentation en données de mon TDataSource, actuellement via un TQuery, par un autre moyen,
    par exemple un TStringList ou autre fichier texte, de façon à préserver toute la partie aval de mon application.
    Quelqu'un saurait-il m'aiguiller svp ?

    Merci d'avance.

  2. #2
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 557
    Points : 3 938
    Points
    3 938
    Par défaut
    Salut

    La réponse est simple, la propriété dataSet d'un TDataSource attend un objet dont une classe ancêtre est TDataSet, donc cela exclut d'emblée les descendants de TString.

    Il existe peut-être des descendants de TDataSet s'appuyant sur du texte dans la JediVCL mais je ne suis plus trop sûr. Le cas échéant, il faut vérifier que le composant en question dispose d'un interface pour lire directement le contenu d'un TString par exemple.

    @+

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  3. #3
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 664
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 664
    Points : 6 967
    Points
    6 967
    Par défaut
    C'est pas le TClientDataSet qui permet de faire des trucs de ce genre ?
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.1 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.4)

  4. #4
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 557
    Points : 3 938
    Points
    3 938
    Par défaut
    Je ne veux pas dire de conneries, mais il me semble que ce composant accepte des données texte au format XML seulement.

    Sous D7, j'ai trouvé vite fait un composant Jedi TJvCsvDataSet dans la palette 'Jv Data Access' avec des méthodes qui semblent intéressantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        procedure AssignFromStrings(Strings: TStrings);
        procedure AssignToStrings(Strings: TStrings);
        procedure SaveToFile(const FileName: string);
        procedure LoadFromFile(const FileName: string);
    Pas le temps de trop approfondir...

    @+

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  5. #5
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Citation Envoyé par e-ric Voir le message
    Je ne veux pas dire de conneries, mais il me semble que ce composant accepte des données texte au format XML seulement.
    un fichier XML cela reste un fichier texte
    Par défaut le TClientDataSet utilise d'ailleurs un format binaire plutôt que le format XML

    Tout comme on peut utiliser ODBC avec "Microsoft Excel Driver (*.xls)",
    il existe "Microsoft Text Driver (*.txt; *.csv)"

    Aussi bien via un TTable que via ADO ... tu dois même pouvoir choisir le délimiteur : Connection strings for Textfile
    Lire le sujet : Importer un fichier CSV dans un clientdataset ?

    Sans ODBC, directement BDE + TTable en TableType
    - ttASCII : contrainte du format CSV américain évoqué dans exporter des données de excel vers une table paradox7

    Voir aussi le TCsvTransform permettant Écriture /lecture au format .csv depuis un TClientDataSet, ce compo va directement générer le XML Midas à partir d'un CSV, un peu lourd comme méthode,
    car la donnée XML est stocké dans un Stream, ce dernier étant chargé par le TClientDataSet

    il aurait probablement été plus rapide de lire le fichier CSV et d'alimenter directement un composant comme le TMemoryDataSet de Franck SORIANO évitant ainsi la dépendance à MidasLib

    Un collègue voulait utiliser le TCsvTransform pour lire un fichier CSV et l'importer dans une table Sybase, je l'ai vite encouragé à utiliser LOAD TABLE de SQL Anywhere qui fait cela bien mieux

    Mais le TCsvTransform à l'avantage d'éviter l'intégration de Jedi juste pour un seul composant comme le TJvCsvDataSet
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  6. #6
    Membre expert
    Avatar de e-ric
    Homme Profil pro
    Apprenti chat, bienfaiteur de tritons et autres bestioles
    Inscrit en
    Mars 2002
    Messages
    1 557
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Apprenti chat, bienfaiteur de tritons et autres bestioles

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 557
    Points : 3 938
    Points
    3 938
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    un fichier XML cela reste un fichier texte
    Le Troll est en forme aujourd'hui
    Je le savais mais je fait l'hypothèse d'un fichier plat. J'aurais dû le préciser.
    Pour l'intégration de la Jedi, c'est vrai que cela fait marteau pilon pour écraser une mouche, mais bon, j'avais pas d'autres solutios en tête.
    @+

    M E N S . A G I T A T . M O L E M
    Debian 64bit, Lazarus + FPC -> n'oubliez pas de consulter les FAQ Delphi et Pascal ainsi que les cours et tutoriels Delphi et Pascal

    "La théorie, c'est quand on sait tout, mais que rien ne marche. La pratique, c'est quand tout marche, mais qu'on ne sait pas pourquoi. En informatique, la théorie et la pratique sont réunies: rien ne marche et on ne sait pas pourquoi!".
    Mais Emmanuel Kant disait aussi : "La théorie sans la pratique est inutile, la pratique sans la théorie est aveugle."

  7. #7
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Citation Envoyé par e-ric Voir le message
    Le Troll est en forme aujourd'hui
    Je te confirme j'ai eu envie de te titiller !

    Citation Envoyé par e-ric Voir le message
    Pour l'intégration de la Jedi, c'est vrai que cela fait marteau pilon pour écraser une mouche, mais bon, j'avais pas d'autres solutios en tête.
    Mais Jedi est très efficace
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 03/05/2015, 23h29
  2. Alternative au dbms_output ?
    Par dam1311 dans le forum Oracle
    Réponses: 10
    Dernier message: 24/11/2004, 08h11
  3. [FORMATION] Formations par alternance
    Par chobol dans le forum Etudes
    Réponses: 10
    Dernier message: 20/02/2004, 11h28
  4. Alimenter le context sur un appel Javascript ?...
    Par Sylvain James dans le forum XMLRAD
    Réponses: 2
    Dernier message: 20/10/2003, 15h44
  5. Alimentation d'un SGBDR depuis un autre SGBR
    Par samyl dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 17/09/2003, 15h57

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