IDENTIFICATION DIVISION.
PROGRAMM-ID.ICREER.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT FGRILLE ASSIGN TO
WORKSTATION-GPERSONNE
ORGANIZATION
TRANSACTION
CONTROL-AREA
FTOUCHES.
SELECT FPERSONNEL ASSIGN
TO DATABASE-PERSONNEL
ORGANIZATION
INDEXED
RECORD
KEY NOM OF ENRPERS
ACCESS
MODE DYNAMIC.
DATA DIVISION.
FILE SECTION.
FD FGRILLE LABEL RECORD OMITTED.
01 EGRILLE.
COPY DDS-PERSONNE1 OF GPERSONNE.
FD FPERSONNEL LABEL RECORD STANDARD.
01 EPERSONNEL.
COPY DDS-ALL-FORMATS OF
PERSONNEL.
WORKING STORAGE SECTION.
01 FTOUCHES PIC XX.
88 F3 VALUE "03".
PROCEDURE DIVISION.
DEBUT.
OPEN I-O FGRILLE OUTPUT
FPERSONNEL.
TQ.
INITIALIZE PERSONNE1.
WRITE EGRILLE FORMAT "PERSONNE1".
READ FGRILLE.
IF F3 GO TO FIN.
MOVE CORR PERSONNE1 TO
ENRPERS.
WRITE
EPERSONNEL INVALID KEY DISPLAY "ERREUR".
GO TO TQ.
FIN.
CLOSE FGRILLE FPERSONNEL.
STOP RUN.
Dans le fichier séquentiel, on rajoute à la fin le nom de
la clé précédé d'un K.
Exemple:
R ENRPERS
NOM 32
PRENOM 32
ADRESSE 96
CP 5
VILLE 27
TEL 20
SALAIRE 7S2
K NOM
Ici, on traite le cas de l'indéxé. C'est à dire que
la recherche des données se fait dans un petit fichier d'indexe.
Celui-ci fait ensuite référence au fichier principale en
se positionnant directement sur le bon enregistrement.
Retour au programme.
Comme je vous l'ai expliqué ci-dessus, nous utilisons un indexe.
Par conséquent, le mieux est de préciser au programme quel
est l'indexe. Cependant, il se peut qu'un index ait des doublons (2 personnes
ayant le même nom pour notre exemple). Par conséquent, on
rajoute WITH DUPLICATES. Cela engendre aussi des modifications dans l'accés
des données. Cf Chapitre VIII: D'autres programmes
indéxés.
Retour au programme.
Il peut arriver que le fichier indéxé soit utilisé
en séquentiel. Notamment quand on imprime un listing de tout le
fichier. On écrira alors ACCESS MODE SEQUENTIAL. Cependant il existe
aussi le mode RANDOM.
Retour au programme.
Le WRITE s'utilise de la même façon que pour le séquentiel
à part qu'il y a une condition de plus. En effet, si la clé
n'est pas conforme, on effectue un affichage d'erreur.
Retour au programme.
Ce programme est le même qu'en séquentiel mais, il est adapté
à l'indéxé.
Retour au programme.