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 :

mieux gérer la relation 1:N sous delphi


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné

    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2010
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2010
    Messages : 297
    Par défaut mieux gérer la relation 1:N sous delphi
    jetez un coup d'œil sur mon schéma MLD.
    ma question est : qu'elle est la meilleur façon sous Delphi pour avoir une interface qui permet d'ajouter et de modifier un véhicule sans avoir à modifier chaque fois les tables marques,types carburant,services.
    j'essaye de minimiser l'intervention de l'utilisateur en se basant sur une seule fiche "Véhicule" qui contient des dblookupcombobox sur carburants (essence , gasoil, Gpl) mais cela me pose problème sur "services" et "marques" quand on a à ajouter un nouveau service ou une nouvelle marque.
    j'espère que j'étaie suffisamment clair.
    j'attends vos idées.
    Images attachées Images attachées  

  2. #2
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    En fait j'ai peur que tu ne sois pas assez clair !
    Le plus classique est de faire une fiche de 'création' de véhicules avec des DBComboBox pour chaque table liée : carburant, services, marques.

  3. #3
    Membre chevronné

    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2010
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2010
    Messages : 297
    Par défaut désolé de ne pas être assez clair.
    Citation Envoyé par philnext Voir le message
    En fait j'ai peur que tu ne sois pas assez clair !
    Le plus classique est de faire une fiche de 'création' de véhicules avec des DBComboBox pour chaque table liée : carburant, services, marques.
    ta solution est utile dans le cas où la table lié contient un nombre statique de lignes (comme la table carburant) donc aucune nécessité de modifier son contenu. par contre la table marques peut avoir des insertions dans le futur (ajouter de nouvelles marques) dans ce cas le combobox ne sert à rien, il faut premièrement ajouter la nouvelle marque à la table marques et actualiser ensuite le combobox (ce cas de figure est pareil pour la table service , types)
    la solution de base est que l'utilisateur a la possibilité d'accéder à toute les tables (c'est ce que je veux éviter) et y ajouter une ligne à chaque fois qu'il y a une nouvelle donnée (nouvelle marque , service ou type) et remplir par la suite la fiche de nouveau véhicule en choisissant les donnée liée dans des combobox.
    Personnellement, je trouve cette solution assez lourde pour un utilisateur qui a plus de 100 véhicules à saisir et je suis certain qu'il y a une solution beaucoup plus simple en utilisant des composant ou des fonctions prédéfinis dans delphi .

  4. #4
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par adelneo Voir le message
    ta solution est utile dans le cas où la table lié contient un nombre statique de lignes (comme la table carburant) donc aucune nécessité de modifier son contenu. par contre la table marques peut avoir des insertions dans le futur (ajouter de nouvelles marques) dans ce cas le combobox ne sert à rien, il faut premièrement ajouter la nouvelle marque à la table marques et actualiser ensuite le combobox (ce cas de figure est pareil pour la table service , types)
    la solution de base est que l'utilisateur a la possibilité d'accéder à toute les tables (c'est ce que je veux éviter) et y ajouter une ligne à chaque fois qu'il y a une nouvelle donnée (nouvelle marque , service ou type) et remplir par la suite la fiche de nouveau véhicule en choisissant les donnée liée dans des combobox.
    Personnellement, je trouve cette solution assez lourde pour un utilisateur qui a plus de 100 véhicules à saisir et je suis certain qu'il y a une solution beaucoup plus simple en utilisant des composant ou des fonctions prédéfinis dans delphi .
    il suffit d'ajouter un bouton "+" à côté des combo pour afficher la fenêtre de création correspondante en mode modal. Lors du retour il faut alors actualiser la combo et tant qu'à faire la positionner sur le nouvel enregistrement.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Membre chevronné

    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2010
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2010
    Messages : 297
    Par défaut enfin une idée
    Citation Envoyé par Paul TOTH Voir le message
    il suffit d'ajouter un bouton "+" à côté des combo pour afficher la fenêtre de création correspondante en mode modal. Lors du retour il faut alors actualiser la combo et tant qu'à faire la positionner sur le nouvel enregistrement.
    c'est une très bonne idée, je vais l'essayer merci beaucoup.

    J'attends par contre les suggestions des autres qui sait il y a peut être de meilleures solutions.

  6. #6
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 282
    Par défaut
    Salut

    Sous MS Access je résous ce problème en autorisant l'écriture libre dans le combo et lorsque l'utilisateur quitte le combo la procédure de mise à jour est appelée si l'entrée n'est pas dans la table liée (par le gestionnaire d'erreur). La procédure peut-être transparente ou avoir un fenêtre modale pour demander plus de renseignement ou simplement confirmer la nouvelle entrée de la table liée.
    Maintenant je n'ai que Delphi 7 Perso, donc pas les composants DB et je ne peux pas le tester pour savoir si c'est aussi simple que cela avec Delphi.

  7. #7
    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 Paul TOTH Voir le message
    il suffit d'ajouter un bouton "+" à côté des combo pour afficher la fenêtre de création correspondante en mode modal. Lors du retour il faut alors actualiser la combo et tant qu'à faire la positionner sur le nouvel enregistrement.
    Salut

    s'agissant du même problème c'est, souvent, cette solution que j'utilise.

  8. #8
    Membre Expert

    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 897
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    il suffit d'ajouter un bouton "+" à côté des combo pour afficher la fenêtre de création correspondante en mode modal. Lors du retour il faut alors actualiser la combo et tant qu'à faire la positionner sur le nouvel enregistrement.
    Une solution sensiblement équivalente consiste à utiliser des DBLookupCombobx pour chaque liste. L'ajout (ouverture de la fiche modale) se fait en détectant l'enfoncement de la touche <insert> quand la liste du DBLookupCombo est ouverte.
    Cela évite de mettre un bouton supplémentaire sur la fiche.

  9. #9
    Membre chevronné

    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2010
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2010
    Messages : 297
    Par défaut c'est mieux encore
    Citation Envoyé par Pascal Jankowski Voir le message
    Une solution sensiblement équivalente consiste à utiliser des DBLookupCombobx pour chaque liste. L'ajout (ouverture de la fiche modale) se fait en détectant l'enfoncement de la touche <insert> quand la liste du DBLookupCombo est ouverte.
    Cela évite de mettre un bouton supplémentaire sur la fiche.
    merci je trouve que c'est la meilleure solution.
    merci pour tout le monde.

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

Discussions similaires

  1. Créer et gérer des base OpenOffice sous delphi 7
    Par gbuxo dans le forum Bases de données
    Réponses: 3
    Dernier message: 04/12/2009, 21h37
  2. programmez une relation à 3 clés et 4 tables sous delphi
    Par ithery75 dans le forum Bases de données
    Réponses: 2
    Dernier message: 03/09/2009, 19h38
  3. [D5][SQL Server] Conserver des images dans la BDD
    Par FONKOU dans le forum Bases de données
    Réponses: 8
    Dernier message: 08/06/2008, 19h58
  4. Réponses: 1
    Dernier message: 07/04/2008, 21h29
  5. requêtes et relation sous delphi 5
    Par dj_techno dans le forum Bases de données
    Réponses: 2
    Dernier message: 27/06/2006, 09h24

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