ADELIA |
VADELIA |
SADELIA |
WADELIA |
MADELIA |
(I/B) |
(I/B) (S) |
(B) (S) |
(I/B) (S) |
(I) (S) |
Paragraphe d'utilisation
Tous
Syntaxe
LIRE_PRECEDENT NomVue Option Paramètre
Option |
→ |
*UNLCK | Rien |
Paramètre |
→ |
*NON_RG | *RG | Rien |
Description
Cet ordre correspond à une lecture séquentielle par clé de l'enregistrement précédent du fichier correspondant à la vue NomVue, avec test de l'égalité sur la clé.
Il est possible de tester si la lecture a abouti par une instruction du type :
|
SI NomVue EXISTE |
ou |
SI NomVue N_EXISTE_PAS. |
N_EXISTE_PAS est VRAI si le début du fichier est atteint OU si la clé est différente de celle à traiter.
Si la lecture n'aboutit pas, le système ne lit aucun enregistrement et la valeur des zones du fichier n'est pas changée.
Il est également possible de s'assurer que l'enregistrement n'est pas verrouillé, en le testant à l'aide du mot réservé *BLOQUE :
|
L'enregistrement est verrouillé. |
|
L'enregistrement n'est pas verrouillé. |
Par défaut, un enregistrement de fichier est verrouillé après lecture si la vue NomVue de ce fichier est déclarée en mise à jour et que le mot réservé *UNLCK n'est pas utilisé.
Voir également l'ordre LIBERER qui permet de libérer un enregistrement de fichier.
Si *UNLCK est indiqué, la lecture ne verrouille pas l'enregistrement. Ce paramètre, utilisé sur un fichier ouvert en mise à jour, permet d'avoir le même effet que s'il avait été déclaré en lecture seule.
Le paramètre *RG permet de générer les règles de gestion implicites de lecture liées à l'entité correspondant à la vue, même si le programme est généré sans l'option de génération des règles de gestion implicites.
Le paramètre *NON_RG permet de ne pas générer les règles de gestion implicites de lecture liées à l'entité correspondant à la vue, même si le programme est généré avec l'option de génération des règles de gestion implicites.
Par exemple
Le fichier VENTES a pour clés : code client et numéro de ligne.
La vue VENTES est utilisée avec W_CODE_CLIENT seulement comme clé d'accès.
CODE_CLI_VTES |
NUM_LIGNE_VTES |
0002 |
01 |
0002 |
02 |
0002 |
03 |
0002 |
04 |
0006 |
01 |
0006 |
02 |
0011 |
01 |
W_CODE_CLIENT = '0006'
LIRE_DERNIER VENTES
* Le pointeur sera positionné dans le fichier sur client 0006, ligne 02
*
TANT_QUE VENTES EXISTE
IMPRIMER DETAIL_VENTES
LIRE_PRECEDENT VENTES
* tous les enregistrements du client 0006 jusqu'à la ligne 01 seront lus
REFAIRE