KEY |
Touche |
|---|---|
| Cobol | |
Syntaxe
| ALTERNATE RECORD KEY IS identifier [WITH DUPLICATES] |
| DELETE filename RECORD [;INVALID KEY imperativestatement] |
|
FILE-CONTROL. ((SELECT [OPTIONAL] filename ASSIGN TO [label][S] AS JCLvariable) [RESERVE integer AREAS] | ORGANIZATION IS [SEQUENTIAL]/RELATIVE/INDEXED | | ACCESS MODE IS [SEQUENTIAL]/RANDOM/DYNAMIC | |RELATIVE/RECORD KEY alphanumericdatafiled| [ALTERNATIVE RECORD KEY alphanumericrecordfield [WITH DUPLICATES] [PASSWORD IS literaldataname] [FILE STATUS IS alphanumericdataitem, groupdataitem] |
|
READ filename RECORD [WITH NO LOCK] [INTO identifier] [; KEY IS dataname] [; INVALID KEY imperativestatement] |
|
REWRITE recordname [FROM identifier] [; INVALID KEY imperativestatement] |
|
START filename [KEY IS EQUAL TO dataname] [;INVALID KEY imperativestatement] |
|
START filename [KEY IS = dataname] [;INVALID KEY imperativestatement] |
|
START filename [KEY IS GREATER THAN dataname] [;INVALID KEY imperativestatement] |
|
START filename [KEY IS > dataname] [;INVALID KEY imperativestatement] |
|
START filename [KEY IS NOT LESS THAN dataname] [;INVALID KEY imperativestatement] |
|
START filename [KEY IS NOT < dataname] [;INVALID KEY imperativestatement] |
|
WRITE recordname [FROM identifier] ([(BEFORE|AFTER) [ADVANCING] ((identifier|integer)[(LINE|LINES)]|mnemonicname | PAGE)] writestatementphrase|[INVALID [KEY] statementlist][NOT INVALID [KEY] statementlist]) [END-WRITE] |
Paramètres
| Nom | Description |
|---|---|
| identifier | Ce paramètre permet d'indiquer le nom d'une donnée utilisée comme clé ou comme référence dans l'accès au fichier. |
| WITH DUPLICATES | Ce paramètre permet d'autoriser plusieurs enregistrements à avoir la même valeur pour une clé alternative. |
| filename | Ce paramètre permet d'indiquer le nom logique d'un fichier référencé dans les opérations d'entrée/sortie. |
| RECORD | Ce paramètre permet de spécifier que l'action (READ, DELETE, etc.) s'applique à un enregistrement de fichier. |
| KEY IS dataname | Ce paramètre permet d'indiquer la donnée qui servira de clé pour une opération de lecture ou de recherche. |
| ALTERNATE RECORD KEY | Ce paramètre permet de définir une clef secondaire pour accéder à des enregistrements dans un fichier indexé. |
| INVALID KEY imperativestatement | Ce paramètre permet de définir l'action à effectuer si une opération échoue à cause d'une clé incorrecte. |
| RECORD KEY | Ce paramètre permet de désigner la clé principale associée à un fichier à accès relatif ou indexé. |
| literaldataname | Ce paramètre permet d'indiquer un mot-clé ou une constante utilisée comme mot de passe dans une clause de fichier. |
| alphanumericdatafiled | Ce paramètre permet de désigner un champ alphanumérique utilisé pour contenir une clé principale ou relative. |
| alphanumericrecordfield | Ce paramètre permet d'indiquer une zone de données alphanumérique servant de clé alternative dans un fichier. |
| groupdataitem | Ce paramètre permet de représenter un ensemble de données structurées, utilisé ici pour entreposer un code de retour. |
| statementlist | Ce paramètre permet de regrouper plusieurs instructions COBOL qui seront exécutées lors d'un événement (exemple erreur). |
| mnemonicname | Ce paramètre permet de désigner un nom symbolique associé à un périphérique de sortie, comme une imprimante. |
| writestatementphrase | Ce paramètre permet d'indiquer les options supplémentaires (ex. sauts de ligne ou pagination) dans une instruction WRITE. |
Description
Cette instruction permet d'indiquer la position dans l'enregistrement logique d'un fichier correspondant à une clef.
Remarques
- La clause KEY IS joue un rôle central dans l'accès aux fichiers indexés : Elle permet de spécifier une clef de recherche utilisée pour localiser un enregistrement précis dans un fichier. Cette clé peut être définie lors de la lecture (READ), du positionnement (START) ou de l'écriture (WRITE) d'un enregistrement, rendant les traitements plus ciblés et efficaces.
- L'utilisation d'une ALTERNATE RECORD KEY permet une flexibilité accrue dans la recherche : Grâce à cette clé secondaire, un même fichier peut être consulté selon différents critères d'indexation. Cela est particulièrement utile lorsqu'un enregistrement peut être identifié soit par un identifiant client, soit par un numéro de commande, par exemple.
- Le mot clef WITH DUPLICATES autorise la redondance des valeurs de clef : Dans certaines situations, il est nécessaire de pouvoir enregistrer plusieurs entrées partageant une même clef alternative. Ce paramètre rend cela possible, mais impose une gestion attentive de l'ordre de lecture pour éviter les confusions ou pertes de données.
- Une erreur de clef peut être interceptée avec INVALID KEY : Lorsqu'une opération basée sur une clef échoue (clef inexistante, écriture sur une clef déjà existante,...), l'instruction INVALID KEY permet de déclencher un traitement alternatif. Cela améliore la robustesse du programme en cas d'anomalie lors de l'accès au fichier.
- Les clefs sont souvent définies dans la clause FILE-CONTROL : C'est à cet endroit que les clés principales (RECORD KEY) et alternatives (ALTERNATE RECORD KEY) sont déclarées. Leur définition dès cette phase structure l'organisation du fichier et détermine les types d'accès possibles pendant l'exécution du programme.
- L'accès à un fichier peut être séquentiel, relatif ou indexé selon la clef définie : La manière dont la clef est utilisée dépend du type d'organisation du fichier (défini par ORGANIZATION IS). Les fichiers indexés utilisent une clef pour un accès direct, les fichiers relatifs se basent sur un numéro de position, et les fichiers séquentiels n'utilisent pas de clef spécifique.
- La clause START associée à une KEY positionne le fichier à un enregistrement spécifique : Cela permet de lancer une lecture séquentielle à partir d'un point précis dans le fichier, plutôt que depuis le début. Les variantes comme KEY IS GREATER THAN ou KEY IS NOT LESS THAN ajoutent une logique conditionnelle fine au positionnement.
- La gestion des clés influence la sécurité, la performance et la logique métier : Bien utilisées, les clés réduisent les accès inutiles au fichier, limitent les erreurs et permettent un traitement rapide de grands volumes de données. Mal gérées, elles peuvent entraîner des échecs d'accès fréquents, des erreurs logiques et un ralentissement notable du traitement.
Dernière mise à jour : Jeudi, le 28 juillet 2011