Récupérer des enregistrements supprimés.

Le module

Voici un module qui permet de récupérer des données supprimées d’un fichier.
Limitation : Il fonctionne dans le cas ou le fichier n’a pas été réorganisé depuis les
suppressions, si la suppression n’a pas été faite par un
CLRPFM, et si le paramètre REUSEDLT du fichier est à  *NO (sinon certains enregistrements
risquent de ne pas être récupérés car réécrasés). En
gros, on peut récupérer les enregistrements supprimés d’un fichier, uniquement ceux qui
sont signalés par la commande DSPFD.
Ce qu’il faut savoir, c’est qu’un enregistrement dans un fichier, est constitué d’un
octet de validité (enregistrement actif est à  x’80’, enregistrement supprimé à  x’C0′)
et des données du fichier.
Pour accéder de nouveau à  ces données, on sauvegarde le fichier dans un fichier
SAVF, puis on lit le contenu du SAVF. On laisse de côté les entêtes et
descriptions de fichier ainsi que les données d’intégrité servant à  la gestion du
SAVF.
Un fichier SAVF est un fichier de 528 de long que l’on peut lire par programme.
Le module date de 93. Je me suis aperçu qu’avec les nouvelles versions de l’OS400, il ne
fonctionne plus. Il faut le réaménager, car je recherche à  des positions fixes
l’entête de fichier pour trouver le début des données, et la façon de stocker dans un
fichier de sauvegarde a changé. Les entêtes de fichiers ne se trouvent plus à  la même
place. C’est pour cela que je force la sauvegarde à  la version V3R2M0. Sinon le principe
de récupérer les données reste le même. Si j’ai le temps et si certains lecteurs sont
intéressés, je ferai prochainement les adaptations .

A bientôt

Laurent

N.B. : les sources des programmes fournis par Laurent se trouvent dans le fichier xpress29.zip (nom réel : rtvdltrec.zip) que vous pouvez télécharger en
cliquant ici. Les fichiers sont au format EBCDIC.
Pour pouvoir les étudier et les compiler, vous devez les transférer sur votre AS/400 via
FTP.

OPEN adresse_as400 — User — Password

BIN PUT fichier_PC bib/source/membre . . .

(c’est l’instruction BIN qui permet de ne pas faire de conversion EBCDIC en ASCII et
inversement).

Print Friendly, PDF & Email