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 de plusieurs enregistrements dans une table de liaison [WD15]


Sujet :

WinDev

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 66
    Points : 41
    Points
    41
    Par défaut Ajout de plusieurs enregistrements dans une table de liaison
    Bonjour,
    voilà j'ai une table facture, une autre employe et enfin la table de liaison facture_employe.

    une facture peut avoir plusieurs employes et un employe peut avoir plusieurs factures.

    Comment fait-on pour ajouter des enregistrements dans la table de liaison facture_employe, sans avoir de problème d'intégrité?
    voici mon code après avoir ajouter les données dans la table Facture, j'ajoute les données dans la table facture_employe:
    Code : 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
    	Facture_Employe.Matricule=sai_Employe1
    	Facture_Employe.IDSociété=Facture.IDSociété
    	Facture_Employe.IDFacture=Facture.IDFacture
    	Facture_Employe.Numfact=Facture.Numfact
    	HAjoute(Facture_Employe)
     
    	Facture_Employe.Matricule=COMBO_employe2
    	Facture_Employe.IDSociété=Facture.IDSociété
    	Facture_Employe.IDFacture=Facture.IDFacture
    	Facture_Employe.Numfact=Facture.Numfact
    	HAjoute(Facture_Employe)
     
    	Facture_Employe.Matricule=SAI_Employe3
    	Facture_Employe.IDSociété=Facture.IDSociété
    	Facture_Employe.IDFacture=Facture.IDFacture
    	Facture_Employe.Numfact=Facture.Numfact	
    	HAjoute(Facture_Employe)
    merci d'avance.

  2. #2
    Membre actif Avatar de MicaelFelix
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    254
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 254
    Points : 221
    Points
    221
    Par défaut
    Selon l'aide de WinDev :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Désactiver le test des cardinalités sur la liaison entre
    // une commande et un client
    HGèreIntégrité(ClientCommande, hCardinalité, Faux)
     
    Remarque : Seules les fonctions HAjoute, HModifie, HSupprime, HRaye et HEcrit peuvent générer une erreur d'intégrité.
    Tu as aussi l'option hIgnoreIntégrité que tu peux utiliser lors de ton HAjoute pour éviter les erreurs d'intégrité.

    Je te dis ça comme ça, je ne l'ai jamais testé mais je m'étais renseigné sur comment le faire avec WinDev.

  3. #3
    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,
    MicaelFelix: Plutôt que d'ignorer les problèmes d'intégrité, je pense qu'il serait plus judicieux d'en trouver l'origine. Si Windev se plain à l'ajout d'un enregistrement, c'est qu'une des données n'est pas bonne. Ignorer une erreur d'intégrité ici revient à avoir des données incohérentes dans la base.

    heiti : tu dis avoir une erreur d'intégrité. Quelle erreur ? Peut-on voir la description de ton fichier de liaison ? Est-ce que l'erreur survient à chaque ajout, ou juste à partir du deuxième ?

    Tatayo.

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 66
    Points : 41
    Points
    41
    Par défaut
    bonjour, d'accord avec MicaelFelix, j'ai déjà mis HGèreIntégrité et cela n'a rien changé, j'avais toujours des messages d'erreurs.

    ma table facture_employe est composée de :
    matricule clé primaire de table employe (avec doublons)
    numfact clé primaire de table facture et clé composée =idsociete+idfacture (avec doublons)
    idsociete clé (avec doublons)
    idfacture clé (avec doublons)
    idfacture_employe (clé composée = matricule +numfact) clé unique

    le message est toujours le suivant: erreur d'intégrité (0.1) entre numfact de facture.fic et numfact de facture_employe.fic, au bout du 3è ajout, quelque fois du 2è ajout.

    comme le message le dit, le problème vient de la rubrique numfact qui est clé composée.

    Merci.
    Fichiers attachés Fichiers attachés

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 66
    Points : 41
    Points
    41
    Par défaut
    Bonjour,

    j'ai fais plusieurs tests d'insertion de facture, et effectivement c'est souvent au 2è ajout que cela se produit.

    Pourtant j'ai mis un HRAZ() avant d'ouvrir la fenêtre et même en la fermant.

    Voici le message d'erreur :

    Erreur d'intégrité.
    Les cardinalités côté clé primaire (1,-1) entre les rubriques <facture.fic.numfact> et <facture_employe.fic.numfact> ne sont pas respectées.

    j'ai modifié la structure de la table facture_employe.
    clé composée unique idfacture_employe = Matricule + idsociete + idfacture
    matricule clé avec doublons texte
    idsociete clé avec doublons texte
    idfacture clé avec doublons numérique
    numfact clé composée avec doublons = idsociete + idfacture ( qui était de type :son, image, binaire, ....)

    Lors de mon ajout je ne renseigne pas numfact, vu que le fait de renseigner idsociete et idfacture suffit.

    Même avec ça j'ai encore des messages d'erreurs.

    Merci.

  6. #6
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 66
    Points : 41
    Points
    41
    Par défaut
    Bonjour,

    finalement j'ai laissé de côté la clé composée. Je l'ai supprimé dans la table facture et mis comme clé primaire un id automatique.

    merci.

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

Discussions similaires

  1. Ajout d'un enregistrement dans une table(SQL Server)
    Par guestCam dans le forum WebDev
    Réponses: 1
    Dernier message: 08/11/2009, 17h07
  2. Ajout automatique d'enregistrement dans une table.
    Par bestofbasile dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 17/01/2008, 14h01
  3. [VBA] Ajout de plusieurs enrgt dans une table
    Par mat67000 dans le forum VBA Access
    Réponses: 4
    Dernier message: 10/05/2007, 14h40
  4. Réponses: 7
    Dernier message: 07/06/2006, 07h32
  5. AJOUT d'un ENREGISTREMENT dans UNE TABLE
    Par ramo dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/08/2005, 16h24

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