READ |
Lecture |
|---|---|
| Cobol | |
Syntaxe
|
READ filename RECORD [INTO identifier] [; AT END imperativestatement] |
|
READ filename [NEXT] RECORD [WITH NO LOCK] [INTO identifier] [; AT END imperativestatement] |
|
READ filename RECORD [WITH NO LOCK] [INTO identifier] [; KEY IS dataname] [; INVALID KEY imperativestatement] |
Paramètres
| Nom | Description |
|---|---|
| filename | Ce paramètre permet d'indiquer le nom logique du fichier à partir duquel la lecture sera effectuée. Il doit correspondre à un fichier défini dans la clause SELECT du FILE-CONTROL. |
| RECORD | Ce paramètre précise que l'on souhaite lire un enregistrement du fichier. Il s'agit d'une partie obligatoire dans la syntaxe de l'instruction READ. |
| NEXT | Ce paramètre est utilisé pour indiquer que la lecture doit se faire sur l'enregistrement suivant du fichier, utile notamment dans le cas de fichiers indexés ou séquentiels. |
| WITH NO LOCK | Ce paramètre permet d'effectuer la lecture sans verrouiller l'enregistrement, ce qui peut être utile dans les contextes multi-utilisateurs ou multi-processus. |
| INTO identifier | Ce paramètre permet de copier le contenu de l'enregistrement lu dans une variable ou une structure spécifiée par l'identifiant. Cela permet de manipuler les données lues sans affecter directement le buffer du fichier. |
| AT END imperativestatement | Ce paramètre permet de définir l'action à exécuter si aucun autre enregistrement n'est disponible à la lecture. Cela permet de gérer proprement la fin de fichier. |
| KEY IS dataname | Ce paramètre permet de spécifier la clef d'accès utilisée pour localiser l'enregistrement dans un fichier indexé ou relatif. Il est nécessaire pour une lecture directe. |
| INVALID KEY imperativestatement | Ce paramètre permet d'exécuter une instruction alternative si la lecture échoue à cause d'une erreur liée à une clé non trouvée, notamment dans les fichiers indexés. |
Description
Cette instruction permet d'effectuer la lecture du prochain enregistrement disponible dans un fichier.
Remarques
- L'instruction READ est essentielle dans la gestion des fichiers séquentiels ou indexés. Elle permet de parcourir les enregistrements d'un fichier, un par un, et de les transférer en mémoire pour traitement. Sans cette instruction, il serait impossible de manipuler dynamiquement le contenu d'un fichier en COBOL.
- Le mot clef NEXT est utilisé pour forcer la lecture séquentielle. Il est particulièrement utile pour les fichiers indexés lorsqu'on veut parcourir tous les enregistrements dans l'ordre croissant des clés, sans avoir à spécifier une clef à chaque lecture.
- L'option INTO identifier offre une sécurité de manipulation. Plutôt que d'agir directement sur le buffer de fichier, cette clause permet de copier l'enregistrement lu dans une variable dédiée, ce qui réduit les erreurs et isole les traitements des données sources.
- Le paramètre WITH NO LOCK permet une lecture non exclusive. Cette option est cruciale dans les environnements concurrents, car elle permet à plusieurs utilisateurs ou programmes d'accéder simultanément à un fichier sans le verrouiller, minimisant ainsi les blocages.
- L'instruction AT END est indispensable pour éviter les erreurs de lecture. Elle permet de gérer proprement la fin d'un fichier, en déclenchant une instruction impérative (comme un GO TO ou un PERFORM) quand il n'y a plus d'enregistrements à lire.
- La clause KEY IS est obligatoire pour une lecture directe. Dans les fichiers indexés ou relatifs, elle permet de cibler un enregistrement précis grâce à une clef. Sans cette clause, le programme ne peut pas localiser directement l'enregistrement souhaité.
- La clause INVALID KEY permet une gestion fine des erreurs. Si une tentative de lecture échoue parce que la clef n'existe pas dans le fichier, cette clause offre un mécanisme de secours pour exécuter un traitement alternatif, ce qui évite l'arrêt brutal du programme.
- La souplesse de l'instruction READ reflète la puissance du COBOL pour la gestion de fichiers. Elle permet de combiner lecture séquentielle et lecture aléatoire, verrouillage ou non, détection de fin de fichier ou d'erreur, rendant le traitement des fichiers très adaptable aux besoins métiers.
Dernière mise à jour : Jeudi, le 28 juillet 2011