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

Delphi Discussion :

Pépin avec une relation maitre / détail


Sujet :

Delphi

  1. #1
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 400
    Par défaut Pépin avec une relation maitre / détail
    Bonjour !

    J'ai une relation maitre / détail qui, semble, a du mal à reconnaître la bonne colonne. En effet, j'ai ce query la :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    select 
        a.date_mois,
        c.code_sr,
        c.nom_sr,
        c.num_client,
        b.volume_releve,
        b.dechet_extrai,
        b.temps_arret_mois,
        a.num_facture,
        a.energie_active,
        a.energie_reactive,
        a.kvarh,
        a.etat_payement,
        a.montant_facture_ht,
        a.montant_facture,
        a.type_facturation
    from tb_sr c
       inner join tb_energie a on (a.code_sr = c.code_sr)
       left join tb_sr_service b on (b.code_sr = a.code_sr) and (b.date_bilan = a.date_mois)
     
    where (c.code_sr = a.code_sr)
     
    order by a.date_mois, c.code_sr

    En voulant créer à partir cette requête une relation maitre / détail avec une autre table dont voici la structure :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    CREATE TABLE TB_SR (
        CODE_SR                SMALLINT NOT NULL,
        NUM_CLIENT             VARCHAR(15),
        CODE_UNITE             VARCHAR(2),
        CODE_STEP              SMALLINT,
        CODE_COMMUNE           VARCHAR(4),
        NOM_SR                 VARCHAR(50),
        DATE_MISE_SERVICE      VARCHAR(10),
        DATE_TRANSFERT         VARCHAR(30),
        DEBIT_NOMINAL          FLOAT NOT NULL,
        HMT_SR                 FLOAT,
        NBR_POMPE              SMALLINT NOT NULL,
        PUISSANCE_POMPE        FLOAT NOT NULL,
        DESTINATION_EAU        VARCHAR(50) NOT NULL,
        TRANSFERT_COMMENTAIRE  VARCHAR(40) CHARACTER SET ISO8859_1 DEFAULT 'Transférée' NOT NULL,
        LOCALISATION_SR        VARCHAR(30),
        X_UTM                  BIGINT,
        Y_UTM                  BIGINT,
        Z_UTM                  BIGINT,
        CODE_STRUCTURE         SMALLINT
    );

    j'ai cette erreur dans mon code Delphi
    Ambiguous field name between table TB_SR and TB_ENERGIE and TB_SR_SERVICE CODE_SR
    Sur le net il est dit qu'il faut utiliser la propriété DetailFields
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IBCQuery_SR_ENERGIE.DetailFields := 'c.code_sr';
    j'ai toujours la même erreur.

    Le message de l'erreur est assez claire mais je ne trouve aucun moyen de faire précéder la colonne CODE_SR par l'alias correspondant.

    Toute idée est la bienvenue.

    Merci tout le monde.

    NB : j'utilise Delphi 2010 et DEVART comme de composants de connexion à ma BD.

  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,

    à mon avis

    - la ligne 21 du code SQL ne sert à rien la relation étant déjà écrite à la ligne 18

    - à la propriété DetailFields je mettrai IBCQuery_SR_ENERGIE.DetailFields := 'code_sr';
    sans indiquer d'alias de table car devant se référer au nom de champ de la Query et non à l'expression dans le texte de la requête

  3. #3
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 400
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    à mon avis

    - la ligne 21 du code SQL ne sert à rien la relation étant déjà écrite à la ligne 18
    Très exact

    Citation Envoyé par SergioMaster Voir le message
    à la propriété DetailFields je mettrai IBCQuery_SR_ENERGIE.DetailFields := 'code_sr';
    sans indiquer d'alias de table car devant se référer au nom de champ de la Query et non à l'expression dans le texte de la requête
    Toujours même erreur !!!

  4. #4
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 400
    Par défaut Résolu
    Salut

    j'ai réglé le problème en conversant le code sql en une vue et rien de plus !

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

Discussions similaires

  1. établir une relation Maitre/Détail avec SQL
    Par SmileSoft dans le forum C++Builder
    Réponses: 8
    Dernier message: 26/09/2009, 21h19
  2. Réponses: 6
    Dernier message: 29/11/2008, 08h16
  3. Mise à jour autravers d'une relation maitre-Détail
    Par Paxaranne dans le forum Forms
    Réponses: 3
    Dernier message: 26/07/2007, 15h00
  4. Gérer une relation Maitre détail
    Par codial dans le forum Bases de données
    Réponses: 10
    Dernier message: 16/10/2006, 11h01
  5. [TTable] Pb avec une relation maitre-detail
    Par kase74 dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/10/2005, 11h34

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