RECORD |
Enregistrement |
| Cobol |
Syntaxe
|
RECORD CONTAINS [integer1 TO] integer2 CHARACTERS
|
Paramètres
| Nom |
Description |
| integer1 |
Ce paramètre permet d'indiquer la longueur minimale d'un enregistrement, exprimée en nombre de caractères. Il est utilisé lorsque la taille de l'enregistrement peut varier. |
| TO |
Ce mot-clé est utilisé pour établir un intervalle entre deux tailles possibles d'un enregistrement. Il lie la taille minimale (integer1) à la taille maximale (integer2). |
| integer2 |
Ce paramètre permet de définir la longueur maximale d'un enregistrement, ou bien la longueur fixe si integer1 est omis. Il est toujours exprimé en nombre de caractères. |
| CHARACTERS |
Ce mot-clé indique que les longueurs spécifiées sont mesurées en caractères et non en octets ou en mots. Il explicite l'unité utilisée pour la taille des enregistrements. |
Description
Cette instruction permet de définir la longueur d'un enregistrement en caractères.
Remarques
- L'instruction RECORD CONTAINS est essentielle pour le contrôle de la taille des enregistrements dans les fichiers. Elle permet de préciser clairement à COBOL combien
de caractères composent un enregistrement, ce qui est crucial pour les traitements séquentiels ou indexés où la structure doit rester cohérente.
- L'utilisation de integer1 TO integer2 introduit une flexibilité dans la définition des longueurs. Cela permet de prendre en charge des fichiers à enregistrements de
taille variable, tout en fixant des limites minimales et maximales. C'est utile pour gérer des formats plus dynamiques, comme ceux issus de systèmes externes.
- Le mot clef CHARACTERS joue un rôle important pour la clarté sémantique. Il indique que la mesure porte sur le nombre de caractères et non sur une autre
unité, comme les octets. Cette distinction peut être critique sur des systèmes où les jeux de caractères utilisent des longueurs différentes (par exemple, EBCDIC vs ASCII étendu).
- Quand integer1 est omis, la longueur de l'enregistrement est fixe et égale à integer2. Cette forme est la plus couramment utilisée pour les fichiers structurés de
manière rigide, où chaque enregistrement a exactement la même taille, ce qui simplifie la lecture et l'écriture séquentielles.
- L'option avec plage (integer1 TO integer2) est particulièrement utile pour les fichiers VARYING. Ces fichiers contiennent des enregistrements dont la longueur peut
fluctuer, selon le contenu ou le contexte métier. Cette souplesse permet de réduire l'espace de stockage et d'adapter les structures aux données réelles.
- Le non-respect des tailles définies par RECORD CONTAINS peut provoquer des erreurs à l'exécution. Si un enregistrement dépasse la taille maximale ou ne respecte pas la
taille attendue, COBOL peut déclencher une condition d'erreur ou tronquer les données, compromettant l'intégrité des traitements.
- Cette instruction est typiquement placée dans la clause FD de la FILE SECTION. Elle fait donc partie intégrante de la description physique du fichier. C'est
à ce niveau que COBOL établit les règles qui vont régir la lecture, l'écriture et la gestion mémoire des enregistrements.
- La combinaison de RECORD CONTAINS avec d'autres clauses comme BLOCK CONTAINS permet une optimisation fine. On peut ainsi définir à la fois la taille des
enregistrements et celle des blocs de transfert, ce qui influence directement les performances d'accès au fichier en environnement de production.
Dernière mise à jour : Jeudi, le 28 juillet 2011