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 :

DBgrid deux tables


Sujet :

Bases de données Delphi

  1. #1
    Fxg
    Fxg est déconnecté
    Membre éclairé
    Homme Profil pro
    ingénieur financier
    Inscrit en
    Septembre 2003
    Messages
    510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur financier

    Informations forums :
    Inscription : Septembre 2003
    Messages : 510
    Points : 837
    Points
    837
    Par défaut DBgrid deux tables
    Bonjour,

    J'ai un DBgrid dans lequel je souhaiterais afficher des données issues de deux tables (maitre/détail).

    Je sais le faire en utilisant un TQuery pour alimenter mon DBGrid, par contre je patauge et je me noie en utilisant un TTable, solution que je veux pourtant privilgier.

    Table 1 : num_auteur, modele
    Table 2 : num_auteur, nom

    je souhaite afficher dans le DBGrid : modele, nom

    PS : Delphi 7 + BDE

    Merci

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 265
    Points : 290
    Points
    290
    Par défaut
    Salut

    Il faut que tu utilises ta Table1 comme source principale de données de ton DBGrid.
    Puis il faut que tu definisses un champ de reference dans Table1 qui fasse reference a Table2.

    regarde du coté de la : Champ référence

    @+

  3. #3
    Fxg
    Fxg est déconnecté
    Membre éclairé
    Homme Profil pro
    ingénieur financier
    Inscrit en
    Septembre 2003
    Messages
    510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur financier

    Informations forums :
    Inscription : Septembre 2003
    Messages : 510
    Points : 837
    Points
    837
    Par défaut
    Merci je viens en fait de mettre en pratique l'exemple de la faq (que j'avais lu en diagonale) et donc de résoudre ma problématique.

  4. #4
    Fxg
    Fxg est déconnecté
    Membre éclairé
    Homme Profil pro
    ingénieur financier
    Inscrit en
    Septembre 2003
    Messages
    510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur financier

    Informations forums :
    Inscription : Septembre 2003
    Messages : 510
    Points : 837
    Points
    837
    Par défaut
    Je déterre ce sujet mais cela évitera un multi-post car c'est dans la suite logique de la première question.

    Jusqu'à présent j'utilisais 2 champs de références qui me permettais davoir dans mon dbgrid : modèle ! nom! prénom

    En fait pour des questions de présentations, je souhaiterais avoir dans le même champ de référence nom + prénom.

    Merci

  5. #5
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    J'imagine que tu peux le faire par requete.
    Tu peux aussi utiliser les champs calculés:

    1. définir le champ calculés dans le DataSet: 'MonChampCalc' par exemple
    2. dans DatataSet.OnCalcFields, tu mets 'MonChampCalc.AsString := Champnom.AsString + ChampPrenomprénom.AsString
    3. c'est tout

    bon code!
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  6. #6
    Fxg
    Fxg est déconnecté
    Membre éclairé
    Homme Profil pro
    ingénieur financier
    Inscrit en
    Septembre 2003
    Messages
    510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur financier

    Informations forums :
    Inscription : Septembre 2003
    Messages : 510
    Points : 837
    Points
    837
    Par défaut
    Merci,
    je vais essayer cela ce soir car au bureau ce n'est pas évident

    Effectivement en passat par une requète pas de problème j'y arrive bien mais je veux passer par un Ttable pour le moment, en attendant de refondre totalement mon application pour suprimer paradox et utiliser Firebird : un challenge de plus, mais c'est le but apprendre plus encore que l'application en elle même.

  7. #7
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    tu peut utiliser la requette JOIN


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT a.Nom,b.Model,a.Num_Auteur,b.Num_Auteur FROM Table1 a JOIN 
    Table2 b ON (a.Num_Auteur = b.Num_Auteur)

  8. #8
    Fxg
    Fxg est déconnecté
    Membre éclairé
    Homme Profil pro
    ingénieur financier
    Inscrit en
    Septembre 2003
    Messages
    510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur financier

    Informations forums :
    Inscription : Septembre 2003
    Messages : 510
    Points : 837
    Points
    837
    Par défaut
    Merci aityahia mais je ne voulais pas utiliser des requètes, même si c'est bien mieux.

    je veux passer par un Ttable pour le moment, en attendant de refondre totalement mon application pour suprimer paradox et utiliser Firebird : un challenge de plus, mais c'est le but apprendre plus encore que l'application en elle même.

  9. #9
    Membre averti Avatar de Bejaia-In
    Inscrit en
    Avril 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 365
    Points : 392
    Points
    392
    Par défaut
    Si tu passe a Firebird, t'as intéret de te mettre au SQL car pas d'équivalent aux TTable avec Firebird.
    Essaye de voir avec le composant TNestedTable si tu peux créer une relation entre les 2 tables.
    ....................................................................
    Aidez-vous... Dieu vous aideras et nous aussi..
    ....................................................................

  10. #10
    Fxg
    Fxg est déconnecté
    Membre éclairé
    Homme Profil pro
    ingénieur financier
    Inscrit en
    Septembre 2003
    Messages
    510
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingénieur financier

    Informations forums :
    Inscription : Septembre 2003
    Messages : 510
    Points : 837
    Points
    837
    Par défaut
    C'est exactement cela.
    Le passage à Firebird de toute l'application sera l'occasion d'une refonte complète sous sql (je m'y suis déjà bien mis)

    Je regarde la solution avec le champ calulé ce week-end.

    Merci à tous

  11. #11
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    dans ce cas tu peut utiliser des champs de références,
    attention les champs de réfference sont déconseiller dans les table volumineuse elle ralentissent le parcour des la table.

Discussions similaires

  1. [Lazarus] Affichage de deux tables liées dans un DBGrid
    Par sadl65 dans le forum Lazarus
    Réponses: 2
    Dernier message: 03/01/2011, 13h34
  2. Liaison de deux tables avec DBGrids
    Par soror dans le forum Bases de données
    Réponses: 10
    Dernier message: 28/06/2007, 18h34
  3. comment lier deux tables?????
    Par baboune dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 16/03/2004, 14h45
  4. 2 Count() sur deux tables en jointures gauches
    Par Alexandre T dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/09/2003, 16h53
  5. regrouper deux tables
    Par Shabata dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/05/2003, 15h02

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