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

WinDev Discussion :

ajout d'enregistrement dans une table avec clé composée


Sujet :

WinDev

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut ajout d'enregistrement dans une table avec clé composée
    Bonjour,
    Je vous pose mon problème:
    je dispose de deux tables DOSSIER(IDDOSSIER,....) et SECTIONS(IDSECTIONS,....) dont l'association donne la table FEUILLE(IDDOSSIER+IDSECTION,....)
    je voudrais insérer les données dans la table FEUILLE à partir du bouton VALIDER. la table FEUILLE dispose donc d'une clé composée IDDOSSIER + IDSECTION.
    Il me pose un problème d'intégrité entre la table FEUILLE (cardinalité 1-1) et la table SECTIONS (cardinalités 1-n).
    Merci de m'aider

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    WinDev et ses clé composées...
    Il me semble qu'il faut construire la valeur de la clé composée avec hConstruitValClé().
    Je trouve perso que ce serait bien plus simple si WinDev gérait les clés composées comme toutes les bases "normales", c'est à dire avec les deux rubriques distinctes.

    Tatayo.

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Cela n'a rien à voir avec les clés composées. Le serveur HF gère seul la construction de la clé composée.
    Vous devez utilisez hConstruitValClé pour la sélection d'enregistrement pour faire des hLitRecherche en gros mais pas pour l'insertion.

    Le serveur HF gère les rubriques d'une clé composée comme 2 rubriques distinctes... Il y a juste un index spécifique qui est construit et pour pouvoir l'interroger il faut construire un clé composée via hConstruitValClé... sauf à passer par du SQL...

    Bref, je pense que vos cardinalités doivent être mal pensées, tout simplement...
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Autant pour moi, je pense que j'ai confondu avec les clés composés étrangères... ce qui n'est pas le cas ici.

    Tatayo.

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    On est que de simples mortels... sujets aux erreurs !
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  6. #6
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut ajout d'enregistrement dans une table avec clé composée
    Merci pour vos réponses. Je sais que hConstruitValclé me servira seulement pour des recherches,
    quelle fonction utiliser alors puisque le hAjoute me donne une erreur.
    je rappelle que les tables DOSSIER et SECTIONS ont des cardinalités (1,n) chacune, d'où l'existence d'une table association FEUILLE dont la clé primaire est une concaténation des clés primaires de DOSSIER et SECTIONS. Veuillez m'aider. S'il y a autre possibilité de ne pas avoir une clé composée et aller plus rapidement.
    Merci

  7. #7
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    La question n'est pas "quelle fonction utiliser ?" mais "quelles cardinalités définir ?"...
    Je vous le dit à vous comme je ne le dis pas assez aux autres qui cherche des "fonctions" en guise de solution magique à tous leurs problèmes :
    -> soit vous lisez les réponses qu'on vous fait soit je ne vous répondrai plus (en ce qui me concerne)

    De plus il serait sympa de :

    - nous montrer votre code
    - nous faire part de l'erreur détaillée
    - nous montrer votre analyse...
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Juste une petite remarque: avec une cardinalité FEUILLE 1.1 <=> 1.n SECTION, pour créer une feuille il faut que la section correspondante existe, et pour créer la section il faut que la feuille correspondante existe...
    A moins de désactiver la gestion de l'intégrité (C'EST MAL !), je ne vois pas trop comment tu peux t'en sortir.
    Je serai d'avis de modifier un moins un côté de la cardinalité (au hasard 1..1 <=> 0..n).

    Tatayo.

  9. #9
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut ajout d'enregistrement dans une table avec clé composée
    le problème le voici:
    je dois créer une fenêtre basée sur la table FEUILLE dont je vous envoie l'image de l'analyse.
    cette fenêtre dispose d'un bouton VALIDER qui doit insérer un enregistrement dans la table feuille.
    voici le code du bouton:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    FEUILLE.IDDossier = DOSSIER.IDDossier
    FEUILLE.IDSection = SECTION.IDSection
    EcranVersFichier()
    hAjoute(FEUILLE)
    Ce code me génère une erreur: contrainte d'intégrité (1,1) non respectée entre FEUILLE.IDSection et SECTION.IDSection

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Il manque l'image de l'analyse...
    Je te propose de mettre un point d'arrêt dans ton code, puis d'avancer pas à pas en regardant le contenu de l'enregistrement de FEUILLE.
    Ainsi tu connaitras les valeurs réelles de chaque rubrique, et ainsi tu devrais trouver ce qui ne va pas dans ton code.

    Tatayo.

  11. #11
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2015
    Messages : 5
    Points : 1
    Points
    1
    Par défaut ajout d'enregistrement dans une table avec clé composée
    analyse
    Nom : analyse.PNG
Affichages : 1364
Taille : 7,7 Ko

  12. #12
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Bonjour
    Citation Envoyé par angemarie Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    FEUILLE.IDDossier = DOSSIER.IDDossier
    FEUILLE.IDSection = SECTION.IDSection
    EcranVersFichier()
    hAjoute(FEUILLE)
    Ce code me génère une erreur: contrainte d'intégrité (1,1) non respectée entre FEUILLE.IDSection et SECTION.IDSection
    Dans ce code tu alimentes manuellement le buffer du fichier FEUILLE et après tu fais en EcranVersFichier() qui doit surement tout écraser
    EcranVersFichier() sert justement à alimenter le buffer d'un fichier à partir de champs écran, il ne faut pas l'appeler après une alimentation manuelle

    Mets un point d'arrêt et regarde le contenu du buffer de FEUILLE

Discussions similaires

  1. [MySQL] Ajouter des données dans une table avec la cmd update
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 25/09/2007, 19h54
  2. Réponses: 4
    Dernier message: 10/12/2006, 16h47
  3. bouton qui ajoute un enregistrement dans une table
    Par petitours dans le forum Access
    Réponses: 1
    Dernier message: 06/12/2006, 13h33
  4. Ajouter des champ dans une table avec une procedure sp
    Par Abdou1 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/07/2006, 18h32
  5. Réponses: 2
    Dernier message: 08/02/2006, 21h22

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