Aller au contenu

Message d'erreur IBM i (AS/400)

CPF2951

Comparaisons incorrectes dans TOKEY pour le fichier d'origine.

Gravité 10 · Avertissement

Cause

Les spécifications DDS relatives au fichier d'origine &1 de la bibliothèque &2 avec le format d'enregistrement &3 contiennent des spécifications de clé que la commande de copie ne pourra peut-être pas traiter. Des enregistrements, autres que ceux demandés au paramètre TOKEY, peuvent être copiés.

Que faire

Si les enregistrements copiés ne vous conviennent pas, utilisez le paramètre NBRRCDS (au lieu du paramètre TOKEY) pour indiquer le nombre d'enregistrements à copier, puis renouvelez la demande.

Description technique

La copie utilise une comparaison de caractères entre la valeur du paramètre TOKEY et la valeur de clé de chaque enregistrement du fichier d'origine. Cette comparaison peut indiquer qu'une clé d'enregistrement dépasse la valeur TOKEY avant ou après l'atteinte de l'enregistrement de fin réel (déterminé par l'ordre réel utilisé pour le chemin d'accès par clé). L'erreur peut se produire pour l'une des raisons suivantes : 1) Les &4 zones clés (communes à tous les formats d'enregistrement copiés) qui seront vérifiées par rapport à la valeur TOKEY indiquée comportent à la fois des zones clés croissantes et décroissantes. 2) L'un des mots-clés DDS suivants s'applique aux &4 premières zones clés :

  • mot-clé ABSVAL.
  • mot-clé ALTSEQ.
  • mot-clé ALWNULL.
  • mot-clé DIGIT.
  • mot-clé SIGNED.
  • mot-clé ZONE. 3) Une ou plusieurs des &4 premières zones clés est une zone de date dans un format de date autre que SAA *ISO ou SAA *JIS. L'un de ces formats est nécessaire pour des comparaisons TOKEY correctes. 4) Une ou plusieurs des &4 premières zones clés est une zone d'heure dans un format d'heure autre que *HMS, SAA *ISO, SAA *EUR ou SAA *JIS. L'un de ces formats est nécessaire pour des comparaisons TOKEY correctes. 5) Une séquence de tri autre que *HEX s'applique au fichier d'origine et une ou plusieurs des &4 premières zones clés sont de type caractère, DBCS-open ou DBCS-either. Une séquence de tri *HEX est nécessaire pour ces types de zones clés afin d'obtenir des comparaisons TOKEY correctes. 6) Une ou plusieurs des &4 premières zones clés est une zone UCS-2 (Universal Coded Character Set) graphique, UTF-8 (UCS Transformation Format) caractère ou UTF-16 graphique.

Copy uses a character comparison between the TOKEY parameter value and the key value for each from-file record. This comparison can indicate that a record key is beyond the TOKEY value either before or after the actual ending record is reached (as determined by the true order used for the keyed access path). The error can occur for one of the following reasons: 1) There are both ascending and descending key fields in the &4 key fields (common to all record formats copied) that will be checked for the TOKEY value specified. 2) Any of the following DDS keywords apply to the first &4 key fields: -- ABSVAL keyword. -- ALTSEQ keyword. -- ALWNULL keyword. -- DIGIT keyword. -- SIGNED keyword. -- ZONE keyword. 3) One or more of the first &4 key fields is a date field in a date format other than SAA *ISO or SAA *JIS. One of these formats is required for correct TOKEY comparisons. 4) One or more of the first &4 key fields is a time field in a time format other than *HMS, SAA *ISO, SAA *EUR, or SAA *JIS. One of these formats is required for correct TOKEY comparisons. 5) A sort sequence other than *HEX applies to the from-file and one or more of the first &4 key fields is a type character, DBCS-open, or DBCS-either field. A *HEX sort sequence is necessary for these key field types for correct TOKEY comparisons. 6) One or more of the first &4 key fields is a UCS-2 (Universal Coded Character Set) -graphic, UTF-8 (UCS Transformation Format) -character, or UTF-16-graphic field.

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
&2 *CHAR 10
&3 *CHAR 10
&4 *BIN 2

Sur votre IBM i

Afficher la description complète du message :

DSPMSGD RANGE(CPF2951) MSGF(QSYS/QCPFMSG)

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

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