1)
Création d'un fichier indéxé
2)
Utilisation dans un programme exemple ICREER
3)
Que fait le programme exemple ICREER
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:
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.