ch5 ch7

Chapitre VI: Utilisation des fichiers indéxés








1) Création d'un fichier indéxé

2) Utilisation dans un programme exemple ICREER

3) Que fait le programme exemple ICREER




Programme exemple sur les indexes



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.


1) Création d'un fichier indéxé


Dans le fichier séquentiel, on rajoute à la fin le nom de la clé précédé d'un K.
Exemple:


Retour au programme.



2) Utilisation dans un programme exemple ICREER



ORGANIZATION INDEXED


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.


RECORD KEY NOM OF ENRPERS


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.


ACCESS MODE DYNAMIC.


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.


WRITE EPERSONNEL INVALID KEY DISPLAY "ERREUR".


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.


3) Que fait le programme exemple ICREER


Ce programme est le même qu'en séquentiel mais, il est adapté à l'indéxé.

Retour au programme.



Chapître précédent!! Chapître suivant!!

RETOUR AU SOMMAIRE