Aller au contenu

CPF428A

L'ouverture du membre &4 du fichier &2 dans &3 a échoué.

Gravité 40 · Fin anormale du programme ou de la fonction

Cause

Le membre &4 du fichier &2 dans la bibliothèque &3 n'a pas été ouvert. Le code d'erreur correspondant est &6. Les codes d'erreur et leur signification sont les suivants : 1

  • Le format pour le fichier &2 contient une ou plusieurs zones de type LOB. Or, la demande d'ouverture n'indiquait pas que ce type de zone pouvait être traité par l'utilisateur de l'ouverture. 2
  • Le format pour le fichier &2 contient une ou plusieurs zones de type liaison de données. Or, la demande d'ouverture n'indiquait pas que ce type de zone pouvait être traité par l'utilisateur de l'ouverture. 3
  • Le format pour le fichier &2 contient une ou plusieurs zones définies par l'utilisateur. Or, la demande d'ouverture n'indiquait pas que ce type de zone pouvait être traité par l'utilisateur de l'ouverture. 4
  • Un type défini par l'utilisateur pour une zone du fichier n'existe pas.

Que faire

Indiquez un autre fichier, utilisez la commande DSPFFD afin de déterminer qu'un type défini par l'utilisateur est manquant, modifiez la demande d'ouverture afin d'indiquer que le type de zone spécifié peut être traité, ou modifiez le programme de sorte que des instructions SQL imbriquées puissent être utilisées pour traiter le fichier. Renouvelez ensuite la demande. Ces types de zone ne sont intégralement pris en charge que par l'intermédiaire de SQL. En conséquence, si vous ne disposez pas du produit DB2 Query Manager and SQL Development Tool Kit for IBM i, il se peut que votre programme ne puisse pas accéder au fichier &2.

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...

VariableTypeLongueur
&2 *CHAR 10
&3 *CHAR 10
&4 *CHAR 10
&6 *BIN 2

Sur votre IBM i

Afficher la description complète du message :

DSPMSGD RANGE(CPF428A) MSGF(QSYS/QCPFMSG)

L'intercepter dans un programme CL, quand il est envoyé comme message d'échappement :

MONMSG MSGID(CPF428A) EXEC(DO)
  /* traitement de l'erreur */
ENDDO