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 :

probleme d'insertion entre deux table maitre detail ?


Sujet :

Delphi

  1. #1
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut probleme d'insertion entre deux table maitre detail ?
    bonjour a tous ,

    j'ai deux tables , entête_réception , ligne_réception ,

    sur delphi j'ai lié les deux tables avec la clé primaire de la table entête_réception et clé etrangere dans la table ligne_réception ,

    lorsque j'ajoute une nouvelle réception , l’entête de réception je saisie les informations le plus normalement possible

    mais dés que j'essaie de saisir les informations dans les ligne réception il ne me laisse pas c'est verrouillé ,

    sachant que le numéro de réception saisie a l’entête de perception est affecté directement au numéro de réception de la ligne réception grâce au lien crée entre les deux table,
    j'ai le signe étoile sur le dbgrid mais j’arrive pas a saisir quoique ce soit



    besoin d'aide svp merci d'avance

    Cordialement

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 046
    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 046
    Points : 40 962
    Points
    40 962
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    je ne comprends pas, vous avez une seule grille ou deux ?
    Comment vous connectez-vous aux tables (type de composants) ?
    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
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    pour l’entête_reception j'utilise les composant suivants :

    datasource1 propriété Dataset adotable1
    adotable1 propriété Tablename entête_reception

    et les DBEDIT pour la saisie des informations
    numero_reception , date_reception , code_fournisseur

    pour ligne_réception j'utilise les composants suivants :

    datasource2 propriété Dataset adotable2
    adotable2 propriété Tablename ligne_réception

    un dbgrid proprieté Datasource datasource2

    un dbnavigator proprieté Datasource datasource1

    pour faire une liaison maitre-detail entre la table maître« entête_reception », et la table détaille « ligne_réception» :
    On clique sur le composant adotable2 « ligne_réception »,
    et choisir dans sa propriété : mastersource
    datasource1.
    Ensuite : dans sa propriété « masterfield » on clique sur petit bouton.
    Ensuite : on choisit dans la liste à gauche le champ « numero_reception » et à droite le champ « numero_r ».
    Ensuite : clique sur le bouton « ajouter » ensuite
    sur le bouton Ok.


    cordialement

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 046
    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 046
    Points : 40 962
    Points
    40 962
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    J'eusse préféré que ce soit une capture d'image (en mode design) cela aurait été plus parlant et que ce ne soit pas ADO qui est loin d'être ma tasse de thé.

    D'une manière générale (et ce depuis des années) je code mes relations maitre-détail par des requêtes (xxxQuery) et non de Tables (xxxTable) chaque Query étant liée à un UpdateSQL (* c'est là où cela se complique car cela n'a pas d'équivalent avec ADO du moins je crois ).
    Pourquoi UpdateSQL ? parce qu'historiquement (BDE) une Query ne peut pas être mise à jour directement (ce qui explique que la grille n'est pas en édition) et que UpdateSQL contient les instructions SQL pour faire les mises à jour, insertions, suppressions et rafraichissement d'une ligne (voire plus) de la table et exécute la commande en fonction du besoin.

    En cas de deux tables ce que je faisais (il y a des années) aussi était d'utilisé non pas l'indication maitre-détail de la table mais une instruction qui me permettait de réduire la table SetRange (*mais cela non plus ce n'est pas ADO )
    * Vous comprenez pourquoi ADO n'est pas ma tasse de thé ?

    Il vous reste la possibilté du Filter en utilisant l'évènement AfterScroll de la table maitre (attention à l'ouverture de la table ou un rafraichissement afterscroll ne doit pas âtre appellé ou alors être ignoré)
    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

Discussions similaires

  1. insertion entre deux tables
    Par h0ussam dans le forum Accès aux données
    Réponses: 1
    Dernier message: 16/10/2008, 08h59
  2. Probleme de relation entre deux tables
    Par Mimisio dans le forum Modélisation
    Réponses: 5
    Dernier message: 17/07/2007, 14h30
  3. Probleme de liaison entre deux tables d'une base de donnees
    Par blondelle dans le forum C++Builder
    Réponses: 32
    Dernier message: 12/04/2007, 18h09
  4. Insertion dans 2 tables (Maitre + detaille )
    Par nil dans le forum Bases de données
    Réponses: 11
    Dernier message: 09/11/2005, 21h30
  5. PROBLEME DE JOINTURE ENTRE DEUX TABLE
    Par DarkMax dans le forum Langage SQL
    Réponses: 13
    Dernier message: 13/01/2005, 15h11

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