Message d'erreur IBM i (AS/400)
MCH1880
Une violation de contrainte référentielle a eu lieu.
Gravité 10 · Avertissement
Cause
Une tentative a été effectuée pour modifier un poste d'espace de données, ce qui a provoqué une violation de contrainte de clé parente ou de clé associée. Pour les opérations qui détruisent un poste d'espace de données, une clé parente, qui possède une clé correspondante identique dans un index de clé associée, est détruite. Pour les opérations qui insèrent un poste d'espace de données, une clé associée, qui ne dispose pas de clé parente équivalente, est insérée. Pour les opérations de mise à jour, la valeur d'une clé parente, qui dispose d'une valeur de clé associée correspondante, est modifiée, ou la valeur d'une clé associée mise à jour ne dispose pas d'une clé parente correspondante. L'espace de données dépendantes est &1. L'espace de données parentes est &2. Le code raison était &3. Les différents codes raison ont la signification suivante : 0001 - Violation due à une opération sur l'espace de données parentes. 0002 - Violation due à une opération sur l'espace de données dépendantes. 0003 - Violation due à l'activation d'une contrainte. Le type de la règle qui a été enfreinte est &4 : 0001 indique une violation de règle de restriction et 0002 indique qu'aucune règle d'action n'a été enfreinte. L'identificateur de contrainte est &6. &7 erreurs ont été trouvées. Les descriptions des erreurs sont les suivantes : &8.
Variables du message
Quand le système envoie le message, chaque variable est remplacée par une valeur réelle : un nom d'objet, de bibliothèque, un code...
| Variable | Type | Longueur |
|---|---|---|
| &1 | *SYP |
variable |
| &2 | *SYP |
variable |
| &3 | *HEX |
2 |
| &4 | *HEX |
2 |
| &6 | *CHAR |
258 |
| &7 | *BIN |
2 |
| &8 | *CHAR |
160 |
Sur votre IBM i
Afficher la description complète du message :
DSPMSGD RANGE(MCH1880) MSGF(QSYS/QCPFMSG)
L'intercepter dans un programme CL, quand il est envoyé comme message d'échappement :
MONMSG MSGID(MCH1880) EXEC(DO)
/* traitement de l'erreur */
ENDDO