Aller au contenu

CPF1987

Le pointeur de base &3 n'est pas un pointeur mémoire dans le programme &1.

Gravité 30 · Erreur grave

Cause

Le pointeur de base &3 indiqué pour une variable de programme dans le programme &1 est d'un autre type que le pointeur mémoire.

Que faire

Exécutez la commande CHGPTR (Modifier un pointeur) ou CHGHLLPTR (Modifier un pointeur HLL) pour attribuer à la variable de pointeur de base une valeur de pointeur mémoire, ou indiquez au paramètre PGM un autre nom de programme, approprié à la variable et au(x) pointeur(s) de base. Relancez ensuite la commande.

Description technique

La commande CHGHLLPTR peut être utilisée pour définir un pointeur HLL (paramètre PTR) sur un pointeur d'espace. PTRTYPE(*SPP) peut être utilisé avec la commande CHGPTR pour définir une variable d'objet de données pointeur sur un pointeur d'espace.

The CHGHLLPTR command can be used to set a HLL pointer (PTR parameter) to a space pointer. PTRTYPE(*SPP) can be used on the CHGPTR command to set a pointer data object variable to a space pointer.

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
&1 *CHAR 10
&3 *CHAR variable

Sur votre IBM i

Afficher la description complète du message :

DSPMSGD RANGE(CPF1987) MSGF(QSYS/QCPFMSG)

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

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