|
Cardinalités |
|
Stagiaire WDF
Inscrit: 28/01/2006 15:06
Post(s): 13
|
Bonjour J'ai l'honneur de vous dire que votre site est plus excellent... Mes encouragements.
Ma question : Je veux savoir comment manipuler les cardinalités et les FICHIERS de LIAISON issus de 2 fichier exemple : Fichier "eleve" (clé : IDeleve) et fichier "CLASSE" (clé:IDclasse) , étant donné la relation complexe entre ces deux fichier un fichier de liaison a été crée avec (IDeleve_IDclasse, IDeleve, IDclasse) IDeleve_IDclasse est une clé composée générée automatiquement.. comment sera le code si je veux ajouter un enregistrement dans le fichier "eleve" sans que j'obtiennes une erreur de cardinalité.. je ne comprends pas .. et est ce que je peux créer une analyse sans que je fasse des liaisons fichiers (je maitrise tout en programmation) .. quel est le role de ces liaisons tant que je ne fais pas de RAD, je programme tout seul.
Merci à vous tous
Contribution le : 28/01/2006 15:20
|
|
|
Re: Cardinalités |
|
Stagiaire WDF
Inscrit: 28/01/2006 15:06
Post(s): 13
|
Bonjour
Peut etre que je n'étais pas clair dans mon premier message, en résumé : J'ai 2 fichiers : Elève et Cursus Sont liés : (1,n)-------(1,N) Comment je peux ajouter un enregistrement dans le fichier ELEVE sans que j'obtiennes une erreur de cardinalité, comme vous voyez si j'ajoute un eleve il doit directement et obligatoirement avoir un cursus.
Je vous demande Messieurs de m'éclaircir ce sujet.. merci
Contribution le : 29/01/2006 11:51
|
|
|
Re: Cardinalités |
|
Stagiaire WDF
Inscrit: 28/01/2006 15:06
Post(s): 13
|
C'est encore moi Désolé, je veux simplement vous dire que j'ai effectué des recherches sur le sujet dans ces forum, mais je ne touve pas de réponse sur : Lorsque la liaison entre 2 fichiers est (1,N) ----(1,N) Si je tente d'ajouter un enregistrement dans le premier fichier l'erreur d'intégrité se présente, comment faire ?
Contribution le : 29/01/2006 12:53
|
|
|
Re: Cardinalités |
|
Animateur WDF
Inscrit: 19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
|
Bonjour,
C'est normal, il faut un fichier intermédiaire pour la liaison entre 2 fichiers dont les cardinalités sont 1,N ----- 1,N
Bon dév.,
Totof
Contribution le : 29/01/2006 16:12
|
|
|
Re: Cardinalités |
|
Stagiaire WDF
Inscrit: 28/01/2006 15:06
Post(s): 13
|
Bonjour Bien sur qu'il faut un fichier intermédiaire, WINDEV le propose automatiquement.. mon problème n'est pas là. Essayes de m'expliquer comment ajouter un enregistrement dans le premier fichier sans avoir d'erreur d'intégrité, comment je ferai ça !?
Mes Fichier :
ELEVE(IDeleve, nom...) CURSUS(IDcursus,note...)
ELEVE_CURSUS (IDeleve,IDcursus,IDeleve_IDcursus) -- fichier intermédiaire.
Voila. Merci
Contribution le : 30/01/2006 11:03
|
|
|
Re: Cardinalités |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Bonjour yssab,
Vous n'avez pas d'obligation d'utilisez un fichier intermédiaire pour les liaisons mais cela fait partie de l'optimisation de la gestion des bases afin d'éviter d'écrire plusieurs fois la meme chose dans une table et d'éviter ainsi des doublons.
Le tout etant que vous sachiez bien ce que voulez faire Exemple
Fichier Eleves IdEleve : Identifiant automatique et donc unique
Fichier Classes IdClasse : Identifiant automatique et donc unique
Sauf erreur de ma part il doit y avoir une erreur d'interpretation dans votre analyse Le m'explique : si vous utilisez la relation 1,N....1,N vous ne pourrez jammais ajouter un eleve si vous n'avez pas crée de cursus et vous ne pourrez pas ajouter de cursus si vous n'avez pas créé d'élèves.
Dans cette condition il faut donc comme vous l'avez compris créer un fichier de relation entre ces deux fichiers permettant ainsi de pouvoir créer sans contraintes des élèves et des classes indépendament du fichier relié.
La contrainte de cette technique devient qu'il vous faut a présent manipuler 3 tables pour créer un enregistrement.
Ainsi vous pourrez ajouter des élèves sans avoir de classe liées et ajouter des classes sans avoir d'élèves liés
Les liaisons se feront uniquement au travers de la manipulation du fichier de relation en allant chercher les identifiant adéquantes des deux fichiers eleves et classes
en résumé et en clair Chaque Elève à au moins un cursus (non) (0,n) Chaque Cursus à au moins un élève (oui) (1,1) Chaque classe à un moins un cursus (non) (0,n) Chaque Cursus à au moins une classe (oui) (1,1)
PS: le RAD gère très bien ces types de liaisons ainsi que les contrôles d'intégritées
Contribution le : 30/01/2006 12:13
|
|
|
Re: Cardinalités |
|
Developpeur WDF
Inscrit: 24/01/2006 13:42
De Chartres
Post(s): 142
|
Pour 1,n 1,n pas de souci tu peux créer tes classe et tes eleves separement. Le tout etant apres de les affecter comme il se doit...
ex: dans tas fenetre un liste deroulante pour les classes, et pour les eleve un tableau avec case a cocher (coche|Nomeleve)
nomcl est une chaine = comboclasse..valeur idcl,i,oc,idelev est un entier si hlitrecherchePremier(Classe,Nom,nomcl) alors idcl = classe.idclasse fin houvre(eleve_classe) oc = tableoccurence(TableEleve) pour i=1 a oc si tableEleve.coche[i] = 1 alors pour tout eleve avec eleve.nom=Table.nom[i] idelev=Eleve.ideleve eleve_classe.ideleve = idelev eleve_classe.idclasse = idcl hajoute(eleve_classe) fin fin fin hferme(eleve_classe)
attention au doublon pour les eleves rajoute le prenom dans ton tableau et dans ton pour tout
Contribution le : 30/01/2006 12:43
|
|
|
Re: Cardinalités |
|
Stagiaire WDF
Inscrit: 28/01/2006 15:06
Post(s): 13
|
Bonjour et Merci Drcharly93.. Citation : Sauf erreur de ma part il doit y avoir une erreur d'interpretation dans votre analyse Le m'explique : si vous utilisez la relation 1,N....1,N vous ne pourrez jammais ajouter un eleve si vous n'avez pas crée de cursus et vous ne pourrez pas ajouter de cursus si vous n'avez pas créé d'élèves.
Oui c'est ça mon problème .. Citation : Dans cette condition il faut donc comme vous l'avez compris créer un fichier de relation entre ces deux fichiers permettant ainsi de pouvoir créer sans contraintes des élèves et des classes indépendament du fichier relié.
Le fichier est déja crée .. Citation : La contrainte de cette technique devient qu'il vous faut a présent manipuler 3 tables pour créer un enregistrement.
Comment ? pouvez-vous me donner une portion de code (exemple ajouter moi un enregistrement je veux ajouter un nouvel élève). Sans que je change la structure de l'analyse. Citation : PS: le RAD gère très bien ces types de liaisons ainsi que les contrôles d'intégritées
Meme avec le RAD j'obtiens les fameux fenetres blanches (erreur d'intégralité). PS: Je ne veux pas en outre utiliser le RAD. Merci pour votre attention Drcharly93.
Contribution le : 30/01/2006 13:02
|
|
|
Re: Cardinalités |
|
Animateur WDF
Inscrit: 02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
|
Si vous avez des erreurs d'intégrités avec le rad il faut commencer par regarder les cardinalitées le problème doit se situé à ce niveau Quand au code pour ajouter un eleve il n'y a aucune contrainte vis à vis du fichier lié puisque la cardinalité est de 0,N donc la seule contrainte d'intégrité à ce niveau se situe au niveau de la suppresion d'un élève et non au niveau de la création. Vous allez surement rire mais si les cardinalitées sont correctement décrites pour ajouter un nouvel eleve le code est le suivant :
//Code du bouton Ajouter apreès avoir initialisées les valeurs.
SI PAS HAjoute(Eleves) ALors
Erreur(HErreurInfo())
RETOUR
Fin
Rien de plus n'est nécessaire puisque la cardinalité di Fichier 'Eleves' (0,N) vers le fichier 'cursus' n'oblige pas a avoir un cursus lié à l'élève au moment de la création de l'élève.
Contribution le : 30/01/2006 13:20
|
|
|
Re: Cardinalités |
|
Stagiaire WDF
Inscrit: 28/01/2006 15:06
Post(s): 13
|
OK .. Je vous tiendrai au courant .. Merci à vous tous.
Contribution le : 30/01/2006 13:28
|
|
|
Re: Cardinalités |
|
Stagiaire WDF
Inscrit: 28/01/2006 15:06
Post(s): 13
|
Bonjour tout le monde ..
Une question à Drcharly93..
Si tu me donne un petit peu de ton temps ça sera un beau cadeau pour moi ..
Un nouveau projet .. une nouvelle analyse ... 02 fichiers à créer exemple (ELEVE et CURSUS ) Condition et cardinalités : CLASSE - Chaque éleve a au moin un CURSUS - Chaque eleve peut Avoir plusieurs CURSUS
CURSUS - Chaque cursus a au moin un ELEVE - Chaque CURSUS peut avoir plusieurs ELEVEs
On génère l'analyse avec ces conditions, un fichier de liaison se crée..
On RAD .. on test --- erreur de cardinalité
SOLUTION : Changer les conditions !!!!! Est-ce la vrai solution ?????????
Merci pour votre attention.
Contribution le : 01/02/2006 10:45
|
|
|
Re: Cardinalités |
|
Animateur WDF
Inscrit: 17/05/2004 14:21
Post(s): 382
|
Pourriez-vous donner le message d'erreur complet ?
Herreurinfo(HerrComplet)
Tous vos fichiers sont-ils crées physiquement y compris le fichier de liaison ? (HCreationSiInexistant)
Contribution le : 01/02/2006 14:11
|
_________________
Mbsl
|
|
Re: Cardinalités |
|
Stagiaire WDF
Inscrit: 28/01/2006 15:06
Post(s): 13
|
Bonjour mbsl .. Citation :
Pourriez-vous donner le message d'erreur complet ?
Voila ce que le message affiche :
Dump de l'erreur du module <WD90HF.DLL> <9.00Bwe>
..
Pas de code d'erreur systeme
Pas de message d'erreur systeme
Que s'est-il passé ?
Erreur d'intégrité.
Les cardinalités côté clé primaire (1,-1) entre les rubriques<Eleve.IDeleve> et <Eleve_Curus.IDeleve> ne sont pas respectés.
-infos du debug:
iehf=14028
-Infos attachées :
EIT_LOGICALTABLENAME: <Eleve>
EIT_ITEMNAME: <IDeleve>
EIT_LINKNAME: <Contarainte_Eleve_Cursus>
- Identifiant dans le .err : 70904
Citation :
Tous vos fichiers sont-ils crées physiquement y compris le fichier de liaison ? (HCreationSiInexistant)
Oui, tous mes fichiers sont crées physiquement. Vous ne pensez pas que je ne peux ajouter un enregistrement dans le fichier ELEVE tant que cet Eleve n'as pas de CURSUS.. et je ne peux ajouter de CURSUS tant que ce CURSUS n'as pas au moin un ELEVE (la LOGIQUE) .. Pratiquement je ne sais quoi faire (en gardant les conditions). Merci
Contribution le : 02/02/2006 11:37
|
|
|
Re: Cardinalités |
|
Animateur WDF
Inscrit: 17/05/2004 14:21
Post(s): 382
|
Bonjour,
Vérifier la valeur de Eleve_Curus.IdEleve juste avant l'ajout, elle doit correspondre à un id élève existant.
Contribution le : 02/02/2006 11:57
|
_________________
Mbsl
|
|
Re: Cardinalités |
|
Stagiaire WDF
Inscrit: 28/01/2006 15:06
Post(s): 13
|
Merci mbsl..
Meme si je supprime les 03 fichiers physiquement.. et redémarrer l'application, les 03 fichiers se créent (vides) pendant l'ajout de mon premier enregistrement la même erreure qui se présente.
Contribution le : 02/02/2006 12:05
|
|
Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.
|
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
|