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 :

Problème de création relation maître détail


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Points : 74
    Points
    74
    Par défaut Problème de création relation maître détail
    Bonjour,

    J'ai un souci pour créer une relation maître/détail avec des IBDataset. Je m'explique:

    J'ai une table clients et une table projets.

    j'ai mis deux IBDataset (ibdClients et ibdprojets) avec leur SelectSQL:

    Pour la table clients (CLI) : select * from CLI order by clinom asc

    Pour la table projets (PRJ) : select * from prj where clicod = :clicod

    Dans l'évènement AfterScroll du IBDataset Clients j'ai écrit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      DM.ibdprojets.Close;
      DM.ibdprojets.ParamByName('CLICOD').AsInteger :=   DM.ibdClients.FieldByName('CLICOD').AsInteger;;
      DM.ibdprojets.Open;
    Et quand je lance mon prog il bloque sur cet évènement, il ne se lance pas.

    Aussi, je me pose la question: Estce que l'on peut mettre un paramètre dans un IBDataset ?

    D'avance merci

    Cordialement

  2. #2
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut


    oh là là.
    utilise la propriété mastersource du dataset prj.
    en supposant que datasource1 est lié au dataset cli, tu devras faire
    prj.mastersource = datasource1.

    cette petite manip va automatiquement renseigner le paramètre clicod dans la requete et rouvrir celle ci chaque fois que tu changeras l'enregistrement en cours du dataset cli, pour peu que clicod soit effectivement le nom d'un champ dans la table CLI, et ce sans aucun code (une fois le dataset prj ouvert bien sur).

    pour plus d'infos, sur la propriété mastersource.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Points : 74
    Points
    74
    Par défaut
    Bonjour,

    merci pour la réponse, c'était effectivement la bonne solution, celà fonctionne maintenant.

    Cordialement

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Points : 74
    Points
    74
    Par défaut
    Re bonjour,

    cependant, une précision, pour afficher mes données j'ai dû mettre un IBQuery avec effectivement comme IBQuery.mastersource = dsClients et ça fonctionne.

    En mettant le prj.mastersource = dsClients celà ne marche pas, j'ai un message d'erreur 'Liaisons de données circulaires non autorisées.'

    Et je comprends toujours pas pourquoi celà ne fonctionne pas directement sur mon IBDataset PRJ !!!!

    Encore merci pour la réponses

    Cordialement

  5. #5
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    vérifie si tu n'as pas mis un truc du genre cli.mastersource = dsProjets, ce qui provoque cette erreur de référence circulaire.
    vérifier aussi les dblookupcombobox si tu les utilise.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Points : 74
    Points
    74
    Par défaut
    Bonjour,

    après recherche, je pense, mais je n'en suis pas certain, c'est parce que j'utilise la table client dans un DBGrid. peut être !!! Je ne vois d'autres explications.

    Cordialement

  7. #7
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    essaie de créer à nouveau 2 jeux de données ainsi que 2 sources de données liées à celles ci, tu reconfigures le tout et tu vois si cela marche ou pas.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Points : 74
    Points
    74
    Par défaut
    c'est à dire? Je n'ai pas bien compris

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Points : 74
    Points
    74
    Par défaut
    Bonjour,

    Dans une nouvelle application j'ai recréé deux IBDataset (CLI et PRJ) et deux Datasource avec PRJ.Datasource = Datasource du IBDCLI.

    Deux DBGrid et celà à l'air de fonctionner normalement. Je peux ajouter un client et des projets.

    Il ne me reste plus qu'à voir pourquoi ça ne marche pas dans mon prog!!!

    Merci pour la piste

    Cordialement

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Points : 74
    Points
    74
    Par défaut
    Je ne comprends pas. J'ai remis la même organisation mais quand je clique sur le DBGrid clients j'ai toujours un message 'débordement de pile'. Grrrrr

  11. #11
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    quels autres composants sont reliés aux Datasource, la grille utilise t'elle des éditeurs Inplace ?
    remarque dans le pire des cas tu effaces puis tu reprends tes jeux de données, vu que ça marche sur une autre application.

    si possible, poste la partie qui fait problème pour qu'on puisse tester.

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 735
    Points : 807
    Points
    807

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Points : 74
    Points
    74
    Par défaut
    Bonjour,

    après pas mal de recherches j'ai enfin trouvé mon erreur. J'ose pas avouer!!!

    En fait dans la liste des champs du IBDProjets j'avais créé un champ persistant CLAIRCLIENT en faisant référence à la table client alors en mettant le datasource du IBDProjets sur IBDClients j'avais cette erreur.

    Désolé, mais merci beaucoup pour votre aide et vos pistes.

    Cordialement

  14. #14
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut
    eh oui! on ne pense pas toujours au plus évident

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    285
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 285
    Points : 74
    Points
    74
    Par défaut
    la preuve!!!

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mai 2008
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Remerciement à codial
    Ta réponse m'a inspirée et ma fait sortir d'un grand obstacle
    Merci !!!!

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 30/12/2012, 17h10
  2. Problème avec une relation maître détail
    Par nb-wissam dans le forum Forms
    Réponses: 2
    Dernier message: 15/06/2010, 11h03
  3. Relation maître détail
    Par souminet dans le forum Débuter
    Réponses: 7
    Dernier message: 25/10/2008, 16h37
  4. Réponses: 14
    Dernier message: 07/10/2008, 12h45
  5. Problème de création relation maître détail
    Par codial dans le forum Firebird
    Réponses: 4
    Dernier message: 21/02/2008, 16h33

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