Instruction Delete
L'instruction DELETE supprime un enregistrement d'un fichier indexé ou relatif. Pour les fichiers indexés, la clé peut ensuite être réutilisée pour l'ajout d'enregistrements. Pour les fichiers relatifs, l'espace est alors disponible pour un nouvel enregistrement avec la même valeur RELATIVE KEY.
Lorsque l'instruction DELETE est exécutée, le fichier associé doit être ouvert en mode I-O.
- file-name-1
- Doit être défini dans une entrée FD dans DATA DIVISION et doit être le nom d'un fichier indexé ou relatif.
Après l'exécution réussie d'une instruction DELETE, l'enregistrement est supprimé du fichier et n'est plus accessible.
L'exécution de l'instruction DELETE n'affecte pas le contenu de la zone d'enregistrement associée à file-name-1 ou le contenu de l'élément de données référencé par le nom de données spécifié dans l'expression DEPENDING ON de la clause RECORD associée à file-name-1.
Si la clause FILE STATUS est spécifiée dans l'entrée de contrôle de fichier, la clé de statut de fichier associée est mise à jour lors de l'exécution de l'instruction DELETE.
L'indicateur de position de fichier n'est pas affecté par l'exécution de l'instruction DELETE.
- Si un verrouillage d'enregistrement unique est spécifié pour le connecteur de fichier associé à file-name-1:
- Un verrou détenu par ce connecteur de fichier sur l'enregistrement supprimé est libéré à la fin de l'exécution réussie de l'instruction DELETE.
- Un verrou détenu par ce connecteur de fichier sur un autre enregistrement est libéré au début de l'exécution de l'instruction DELETE.
- Si plusieurs verrouillages d'enregistrement sont spécifiés pour le connecteur de fichier associé à file-name-1, tous les verrous détenus sur l'enregistrement supprimé sont libérés à la fin de l'exécution réussie de l'instruction DELETE.
Mode d'accès séquentiel
Pour un fichier en mode d'accès séquentiel, l'instruction d'entrée-sortie précédente doit être une instruction READ exécutée avec succès. Lorsque l'instruction DELETE est exécutée, le système supprime l'enregistrement qui a été extrait par cette instruction READ.
Pour un fichier en mode d'accès séquentiel, les expressions INVALID KEY et NOT INVALID KEY ne doivent pas être spécifiées. Une procédure EXCEPTION/ERROR peut être spécifiée.
Mode d'accès aléatoire ou dynamique
En mode d'accès aléatoire ou dynamique, les résultats d'exécution de l'instruction DELETE dépendent de l'organisation du fichier: indexé ou relatif.
Lorsque l'instruction DELETE est exécutée, le système supprime l'enregistrement identifié par le contenu de l'élément de données RECORD KEY principal pour les fichiers indexés, ou l'élément de données RELATIVE KEY pour les fichiers relatifs. Si le fichier ne contient pas d'enregistrement de ce type, une condition INVALID KEY existe. (Voir Condition de clé non valide.)
Expression INVALID KEY
L'expression INVALID KEY et une procédure EXCEPTION/ERROR applicable peuvent être omises.
Le transfert de contrôle après l'exécution réussie d'une instruction DELETE, avec l'expression NOT INVALID KEY spécifiée, est effectué à l'instruction impérative associée à l'expression.
Expression END-DELETE
Ce caractère de fin de portée explicite sert à délimiter la portée de l'instruction DELETE. END-DELETE permet d'imbriquer une instruction DELETE conditionnelle dans une autre instruction conditionnelle. END-DELETE peut également être utilisé avec une instruction DELETE impérative.
Pour plus d'informations, voir Déclarations d'étendue délimitées.
