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 :

XE7: Lister les données d'une table dansDB ListView


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 82
    Par défaut XE7: Lister les données d'une table dansDB ListView
    Bonjour,

    Je crée un nouveau programme de statistiques, d'habitude je crée un format de fichier prioritaire dans lequel j'enregistre toutes mes données.
    Je suis un complet débutant en programmation BDD, pour me faire la main, je me suis dit que plutôt que de créer un fichier, j’enregistrerais bien mes données sur mon NAS privé, qui est pourvu d'un serveur MYSQL.
    J'ai lu plusieurs sites traitant du sujet, et ma base est crée, la connexion Firedac fonctionne correctement, et je suis capable d'afficher ma table avec des relation master-slave avec des DBGrid.
    J'ai regroupé connexion, TFDTable et Datasource dans un module de données. Je ne sais pas si la démarche est bonne mais les relations master-slave sont stipulées dans Masterfield et mastersource des TFDTable;

    J'ai donc:
    tblProjet (table)
    projetID : Key
    Nomprojet : Char50

    tblGraph (table)
    graphID : Key
    projet : INT (pointe vers tblprojet.projetID) -->> Master field/source
    description : char50
    plein d'autres paramètres


    Voici mon problème:
    Je dois importer plusieurs graphiques (images) dans ma table, stipuler quelques paramètres et l'enregistrer.
    Afin d'économiser le temps et ne pas à avoir à ouvrir chaque fichier via une boite de dialogue, je désire importer toutes les images d'un répertoire en une fois.
    Les images d'un répertoire sont toutes liées au même projet.
    1°Je veux donc avoir une listeview avec tous les "nomProjet" qui retourne un ProjetID,
    2°ensuite j'ouvre une boite de dialogue afin de séléctionner un répertoire
    3°chacune leur tour, les images sont affichés, j'entre la description, et l'image est sauvegardée avec ses paramètres et surtout le ProjetID sélectionné en 1

    Je me heurte à l'étape 1°, si j'essaie d'afficher les Nomprojet dans un DBListView ou un DBLookupListView, il n'y a aucune donnée affichée, alors que la connexion est faite et les table active (je peux voir les données dans un DBGrid)
    J'imagine que c'est du au fait que lorsque je veux afficher ce listview, il n'y a encore aucun enregistrement Graph crée.
    J'ai pensé créer un ListView (pas DB) et remplir la liste avec les données prises dans ma table, mais je trouve que cela ne serait pas très élégant comme solution.

    Il y a il un moyen de faire ce que je veux? Je dois probablement avoir raté une subtilité du système.

    Merci d'avance pour vos lumières.

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 706
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    Rien ne me parait insurmontable, j'ai fait quasi la même chose en FMX et j'ai même utilisé partie de cet exemple dans mon tutoriel "Premier pas avec les Styles Firemonkey avec XE4"

    Ou je comprend moins, c'est les composants utilisés
    DBListView ou un DBLookupListView
    Que ce soit VCL ou FMX je ne trouve pas ces composants (ou alors mes yeux sont encore collés ce matin )
    ne s'agit-il pas plutôt de DBListBox ou DBLookupListBox (en VCL) ?
    auquel cas je comprends alors mieux la phrase suivante
    J'ai pensé créer un ListView (pas DB) et remplir la liste avec les données prises dans ma table, mais je trouve que cela ne serait pas très élégant comme solution.
    pour ce qui s'agit de la listbox, il faut de toute manière remplir les items "à la main" donc la solution "inélégante" de la boucle while not eof do ... next; end;
    je ne sais si les livebindings VCL le permet (jamais tenté)
    pour la combobox l'astuce serait, je pense, de ne pas renseigner la partie datasource et datafield ainsi la boite de choix serait remplie mais aucunement positionnée lors d'un ajout de graphe, restera, néanmoins, à gérer l'évènement onnewrecord pour renseigner le champ tblGraph.projet (égal à Combobox.keyvalue)

    P.S. en FMX la manip sera totalement différente (l'utilisation des livebindings étant incontournable ou peu s'en faut)

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 82
    Par défaut
    Bonjour,

    Oui il s'agit effectivement de DBListBox ou DBLookupListBox.
    Même en ne renseignant pas datasource et datafield, cela ne fonctionne pas.

    Je vais aller faire un tour sur les livebindings, car je comptais faire la partie logicielle qui exploite ma bdd en FMX (que je ne connais pas), car il faudrait afficher ces sur IOS.
    J'ai fait la partie remplissage de BDD en VCL car j'ai trop besoin de la librairie Graphics32 que je connais bien et j'ai la flemme de potasser une autre librairie.
    Les livebindings sont ils équivalents sur VCL et FMX?

    Peux tu me conseiller un site ou tutoriel pour commencer en Livebindings? (même en anglais)?

    Merci encore pour tes infos.

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 706
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par yupyupxav Voir le message
    Oui il s'agit effectivement de DBListBox ou DBLookupListBox.
    Ouf, je ne suis pas et bien réveillé
    Même en ne renseignant pas datasource et datafield, cela ne fonctionne pas.
    étrange, même la table/query sur tblProjet est bien ouverte ?
    J'ai fait la partie remplissage de BDD en VCL car j'ai trop besoin de la librairie Graphics32 que je connais bien et j'ai la flemme de potasser une autre librairie.
    il y a des possibilités très intéressante au niveau gestion d'images avec FMX, à la suite du programme que j'ai fait sur les styles (voir mon lien plus haut), j'ai pu améliorer ce dernier pour en faire un outil permettant de recadrer, retailler des images avant de les enregistrer (ce qui en VCL est une galère se fait rapidement avec FMX)

    Les livebindings sont ils équivalents sur VCL et FMX?
    dans le principe oui, dans les faits (pour moi) NON , les accès aux propriétés des composants ne sont pas les mêmes
    pour reprendre la listview (et pas listbox cette fois ci) en FMX la liaison se fait visuellement sans soucis , avec VCL je ne vois même pas comment faire pour l'instant !
    [Edit] en fait je n'étais pas si bien réveillé que ça , une nouvelle tentative VCL m'a permis de lier un ListBox a une source de données rapidement
    contrairement à une DBListBox
    Peux tu me conseiller un site ou tutoriel pour commencer en Livebindings? (même en anglais)?
    Ah ça, j'aimerais bien en trouver ! j'utilise beaucoup les quelques vidéos que l'on peut trouver en "googlant" mais dès que l'on s'écarte des classiques liaisons champs tedit,tchecckbox,timage etc... souvent traités (se trouve aussi dans les exemples C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\LiveBindings) il faut faire de nombreuses recherches
    les points non traités (je peste souvent à ce sujet) tels que l'équivalent de DBLookupComboBoxs (j'ai fini par réussir), le remplissage de ListView (réussi également) sont peu abordés voire pas du tout.
    Quelques mots clés en plus tels que Livebindings +Side Effects ou +CustomFormat font plonger plus dans ce fouillis.

    Bref, malgré mes premières réussites sur les livebindings FMX je suis encore loin de pouvoir les expliquer clairement, il y a beaucoup de choses frustrantes à ce sujet (j'ouvre régulièrement des Posts dans la rubrique FMX) . ça fonctionne, mais comme du coup les liaisons ne se voient pas vraiment bien (à moins d'avoir un double écran d'une taille plus que respectable) je crains la maintenance Bref le lieur visuel c'est bien mais bloquant et l'expert livebindings demande des heures d’entrainement

Discussions similaires

  1. Problème pour lire les donnée d'une table externe
    Par mardoch dans le forum SQL*Loader
    Réponses: 6
    Dernier message: 17/07/2008, 17h41
  2. [MySQL] lister les occurrences d'une table
    Par youyoule dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/09/2005, 21h37
  3. comment modifier les données d'une table à travers un dbgrid
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 12
    Dernier message: 19/07/2005, 10h51
  4. MySQL Administrator : modifier les données d'une table
    Par Robinounou dans le forum Outils
    Réponses: 4
    Dernier message: 13/07/2005, 18h21
  5. transformer les données d'une table .dbf vers ma BD
    Par djouahra.karim1 dans le forum Bases de données
    Réponses: 2
    Dernier message: 30/11/2004, 10h54

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