--------------------------------------------- ! DEFINITION EXTERNE DES FICHIERS EN ENTREE ! --------------------------------------------- Vous vous demandez peut être pourquoi définir les zones du fichier dans le programme , alors que cette définition existe dans l'objet fichier. ON PEUT UTILISER CETTE DEFINITION DE L'OBJET, CE QUI NOUS FACILITERA LA PROGRAMMATION ? grâce a cette utilisation de la description externe, notre programme ne contiendra plus de description de zones pour les fichiers sur disque. C'est le compilateur COBOL qui génèrera automatiquement cette description de zones. L'inconvénient de cette méthode est qu'il ne sera plus possible de regrouper certaines zones dans un niveau supérieur (sauf REDEFINES). |
3 étapes pour la mise en place de cette description externe. 1 NOUS INDIQUERONS DANS L'ENVIRONMENT DIVISION EN LIEU ET PLACE DE DISK L'UNITE DATABASE QUI NOUS PERMETTRA D'UTILISER LES FONCTIONS DE LA BASE DE DONNEES. 2 NOUS INDIQUERONS DANS LA DATA DIVISION LA FONCTION COPY QUI NOUS PERMETTRA LA COPIE DE LA DESCRIPTION DU FICHIER. 3 NOTRE ORDRE DE LECTURE SERA UN PEU MODIFIÉ (optionnel). 1 ENVIRONMENT DIVISION. ----------------------- pour les fichiers définis en description externe notre nouvelle phrase SELECT sera |
FICHIER ORGANISATION SEQUENTIELLE. ---------------------------------- SELECT nom du fichier ASSIGN TO DATABASE-nom du fichier-ext FICHIER ORGANISATION SEQUENTIELLE INDEXEE ----------------------------------------- SELECT nom du fichier ASSIGN TO DATABASE-nom du fichier-ext --------------- !SEQUENTIAL ! ORGANIZATION INDEXED ACCESS < RANDOM ! !DYNAMIC -------------- |
2 DATA DIVISION. ---------------- NOUS AURONS DANS LA DATA DIVISION POUR LE FICHIER LES PHRASES COBOL SUIVANTES. DATA DIVISION. FILE SECTION. FD nom du fichier LABEL RECORD IS STANDARD. 01 nom de l'enregistrement. COPY DDS-nom du format OF nom du fichier sur l'unité. 3 PROCEDURE DIVISION. --------------------- Nouvel ordre de lecture: READ nom du fichier INTO nom d'enregistrement FORMAT "nom du format" AT END phrase cobol. (si lecture séquentielle) INVALID KEY phrase cobol. (si lecture accès directe) |
4 VALEURS NULLES. ----------------- |
4 VALEURS NULLES. ---------------- |
4 VALEURS NULLES, suite. ------------------------ |
VERROUILLAGE D'ENREGISTREMENTS TOUT ENREGISTREMENT LU A DES FINS DE MISE A JOUR EST VERROUILLÉ ########################################################################## ## ## ## A LA LECTURE D'UN ENREGISTREMENT D'UN FICHIER UTILISE ## ## EN MISE A JOUR (U en col 15/open IO) L'ENREGISTREMENT EST ## ## VERROUILLE PAR LE système C'EST A DIRE QU'AUCUN AUTRE ## ## JOB OU PGM DU MEME JOB QUI UTILISE AUSSI CE FICHIER EN MISE A JOUR ## ## NE POURRA LIRE CET ENREGISTREMENT. ## ## ## ## CET ENREGISTREMENT SERA VERROUILLE JUSQU'A UNE PROCHAINE ## ## OPERATION D'ENTREE/SORTIE SUR CE FICHIER ## ## ## ## PAR EX: UPDATE/ REWRITE de l'enregistrement ## ## lecture d'un enregistrement (==> verrouillage d'un autre) ## ## UNLOCK du fichier en GAP. ## ## ## ########################################################################## |
Voici les correspondances RPG / COBOL-400. R P G C O B O L U en specif F ou USAGE(*UPDATE) | OPEN I-O | N en col 53 ou en option (N) | READ .... WITH NO LOCK | - enregistrement indisponible | | indic en col 56-57 | FILE STATUS = '9D' (ou %STATUS) | | Màj partielle [EXCEPT ou %fields] | -sans équivalent- | UNLCK/UNLOCK | -sans équivalent- | Utiliser REWRITE. | --------------------------------------------------------------------------- |