Bonjour,
j'explique rapidement mon problème :
Je cherche à changer des valeurs à partir d'un fichier paramétre.
Ex :
M1 devient SA
M2 devient SA
M3 devient SB...
Mon problème, c'est que pour certain enregistrement, les valeurs m1, m2 m3 ... sont les clé du VSAM. dans ce cas, le rewrite ne fonctionne pas : j'ai une erreur 21.
j'ai alors essayé les méthode suivantes :
Essai 1
lorsque je tombe sur un enregistrement dont la valeur à modifier est la clé
Je vérifie si je n'ai pas déjà traité cet clé (pour ne pas avoir de doublon en fichier de sortie)
si déjà traité : je fais un delete de cet enregistrement
si non traité : je modifie la clé dans l'enregistrement et fait un rewrite
erreur de rewrite
essai 2
quand je rencontre une modification de clé :
j'enregistre cette ligne à modifier dans un tableau
je supprime la ligne dans le fichier par un DELETE
puis je continue le traitement des autres enregistrements.
en fin de programme, je traite mon tableau des enregistrements avec clé modifié :
Write enregistrement depuis donnée tableau
Erreu 92 : erreur logique !
J'ai essayé en triant mon tableau sur les valeur de la clé, pas plus de succès.
Comment traiter ce problème de clé ? comment déclarer mon write dans le fichier pour que la donnée s'écrit au bon endroit !
Partager