Erreur de cardinalité
Stagiaire WDF
Inscrit:
07/11/2005 17:03
Post(s): 4
Chaque fois que j'ajoute un errégistrement dans un fichier de la façon suivante:

PROCEDURE AJOUTE_FACTURES()

X est un entier

POUR X= 1 TO TableOccurrence(TABLE)

TableSelectPlus(TABLE,X)

FACTURES.NUM_CLIENT =Clients.NUM_CLIENT
FACTURES.NUM_FACT =NUMEROTEUR
FACTURES.DATE =S_DATE
FACTURES.REFERENCE =FACTURES.REFERENCE+TABLE.LIBELLES[X]
FACTURES.ACCOMPTE =FACTURES.ACCOMPTE+TABLE.TOTAL[X]

FIN


HAjoute(FACTURES);SI HErreurIntégrité() ALORS Info(HErreurInfo())


J'ai l'erreur suivante:

Erreur d'intégrité:
les cardinalité coté clé étrangère (1,1) entre les rubriques clients.IDclient et factures.IDClients ne sont pas respectées.



Une idée


Merci d'avance et bonne soirée

Contribution le : 09/11/2005 16:26

Edité par mbsl sur 10/11/2005 14:35:22
Créer un fichier PDF de la contribution Imprimer


Re: Erreur de cardinalité
Animateur WDF
Inscrit:
17/05/2004 14:21
Post(s): 382
Dans votre code d'alimentation de votre occurrence, vous n'avez pas alimenter IdClients qui est une clé étrangère obligatoirement présente dans le fichier CLIENT (1,1).


HRAZ(FACTURES)

FACTURES.ID_CLIENTS =Clients.ID_CLIENT
FACTURES.NUM_CLIENT =Clients.NUM_CLIENT
FACTURES.NUM_FACT =NUMEROTEUR
FACTURES.DATE =S_DATE
FACTURES.REFERENCE =FACTURES.REFERENCE+TABLE.LIBELLES[X]
FACTURES.ACCOMPTE =FACTURES.ACCOMPTE+TABLE.TOTAL[X]

SI PAS HAjoute(FACTURES) ALORS
 Info(HErreurInfo())
FIN


Tout est dans le message où sinon vous ne nous avez pas tout dit. Vérifiez bien votre parcours, si vous devez ajouter plusieurs factures le Hajoute doit être réalisé à chaque fois ...

Contribution le : 09/11/2005 16:44
_________________
Mbsl
Créer un fichier PDF de la contribution Imprimer


Re: Erreur de cardinalité
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour closen,

Primo
Il me semble que la fonction HAjoute devrait se trouver dans la boucle.
si tu as X ligne de facture dans ta table il est nécessaire de faire X Ajout dans le fichier.

Secondo
Citation :

Erreur d'intégrité:
les cardinalité coté clé étrangère (1,1) entre les rubriques clients.IDclient et factures.IDClients ne sont pas respectées.

la cardinalité devrait plutôt être du genre (1,N)
pour 1 client qui peut avoir plusieurs factures.

[edit]
Tiens, mbsl à été encore été le plus rapide
[/edit]

Contribution le : 09/11/2005 16:54
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Erreur de cardinalité
Clausen
J'ai modifier mon code comme me le conseil mbsl.
CA MARCHE


Mais je constate lors que je regarde le fichier FACTURES avec WDMAP que seul les enrégistrement que je fait maintenant on quelque chose (Numéro Client dans la zone id clients).


POURQUOI ou comment mettre a jour ce fichier




PROCEDURE AJOUTE_FACTURES()

X est un entier

POUR X= 1 TO TableOccurrence(TABLE)

TableSelectPlus(TABLE,X)

FACTURES.IDClients =Clients.IDClients
FACTURES.NUM_CLIENT =Clients.NUM_CLIENT
FACTURES.NUM_FACT =NUMEROTEUR
FACTURES.DATE =S_DATE
FACTURES.REFERENCE =FACTURES.REFERENCE+TABLE.LIBELLES[X]
FACTURES.ACCOMPTE =FACTURES.ACCOMPTE+TABLE.TOTAL[X]



SI PAS HAjoute(FACTURES) ALORS
Info(HErreurInfo())
FIN


FIN



CA MARCHE mais je constate une chose

Contribution le : 10/11/2005 10:11
Créer un fichier PDF de la contribution Imprimer


Re: Erreur de cardinalité
Animateur WDF
Inscrit:
17/05/2004 14:21
Post(s): 382
Je ne saisi pas exactement le sens de votre question. Si un controle d'intégrité a été mis en place dés le départ entre clients (0,N) et Factures (1,1) sur la clé IdClients, et qu'auparavant cette même clé n'était pas alimenté, un HAJOUTE(Factures) n'avait aucun effet (Erreur).

Il semblerait que dans votre fichier Factures des enregistrements avec un IdClient à blanc soient présents. Le controle d'intégrité n'aurait donc pas été mis en place au départ.

Pour remédier à tout cà, si vous avez la possibilité de détruire votre fichier et recommencer, c'est le plus simple. Sinon, si dans votre facture, vous avez une rubrique qui peut identifier le client autre que IdClients (NumClient ??), vous parcourez votre fichier factures, retrouvez l'idclients manquant et réalisez la mise à jour.

NB : Vous n'avez pas besoin de faire un TableSelectPlus(TABLE,X) pour accéder à TABLE.LIBELLES[X]

Contribution le : 10/11/2005 10:33
_________________
Mbsl
Créer un fichier PDF de la contribution Imprimer


Re: Erreur de cardinalité
CLAUSEN
Ce fichier a été importer de Excell.

Serait 'il pas possible de remplir par une requète SQl

la zone ID.client par le numéro Client qui se trouve dans le fichier.

Si oui est ce que quelqu'un sait écrire cette requète SQL


Salutations

Contribution le : 10/11/2005 13:33
Créer un fichier PDF de la contribution Imprimer


Re: Erreur de cardinalité
clausen@tvs2net.ch
javais penser faire comme ca mais ca plante.

HLitPremier (FACTURES.FACLEUNIK)

TANTQUE PAS HEnDehors
FACTURES.IDClients=FACTURES.NUM_CLIENT
HEcrit(FACTURES)

HLitSuivant (FACTURES.FACLEUNIK)

FIN

Contribution le : 10/11/2005 14:05
Créer un fichier PDF de la contribution Imprimer


Re: Erreur de cardinalité
Animateur WDF
Inscrit:
17/05/2004 14:21
Post(s): 382
La requête :

UPDATE Factures
SET IdFacture = Factures.NumFacture
WHERE Factures.IdFacture = 0


Le Code :

HLitPremier (FACTURES,FACLEUNIK)
TANTQUE PAS HEnDehors
FACTURES.IDClients=FACTURES.NUM_CLIENT
HModifie(FACTURES)
HLitSuivant (FACTURES,FACLEUNIK)
FIN


Je pense qu'il serait très intéressant pour vous de parcourir l'autoformation sur Windev. Les principes tel celui-ci y sont expliqués.

Contribution le : 10/11/2005 14:12

Edité par mbsl sur 10/11/2005 15:10:25
_________________
Mbsl
Créer un fichier PDF de la contribution Imprimer


Re: Erreur de cardinalité
Clausen
Merci

Contribution le : 10/11/2005 14:28
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


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.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2