ADELIA |
VADELIA |
SADELIA |
WADELIA |
MADELIA |
(I/B) |
(I/B) (S) |
(B) (S) |
(I/B) (S) |
(I) (S) |
Attention : dans le cas des programmes de type ADELIA, cet ordre est uniquement compatible avec le générateur RPG.
Paragraphe d'utilisation
Tous
Syntaxe
LIRE_AV_SQL_C NomCurseur Paramètre
LIRE_AV_SQL_C NomCurseur SuiteVarHotes
Paramètre |
→ |
*NON_RG | *RG | Rien |
SuiteVarHotes |
→ |
SuiteVarHotes, :IdVarHote | :IdVarHote |
IdVarHote |
→ |
IdVar | IdVar :IdVarIndicatrice |
Description
Cet ordre lit l'enregistrement suivant du curseur NomCurseur.
Le paramètre *RG permet de générer les règles de gestion implicites de lecture liées à l'entité, 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é, même si le programme est généré avec l'option de génération des règles de gestion implicites.
L'utilisation de la syntaxe avec SuiteVarHotes n'est possible que dans les programmes de type VADELIA et SADELIA, et pour les curseurs ayant leur requête définie dans une variable.
Pour les programmes VADELIA et SADELIA, dans le cas des curseurs en mise à jour, il est possible de s'assurer que l'enregistrement n'est pas verrouillé en le testant à l'aide du mot réservé *BLOQUE.
Après exécution de l'ordre, il est possible de tester le code retour SQL à l'aide du mot réservé *SQLCODE.
Par exemple
LIRE_AV_SQL_C NomCurseur
* Déclaration d'un curseur en syntaxe Visual Adélia dans le paragraphe DECL PGM :
* sur l'entité CONTRAT dont les enregistrements correspondent
* à un code de produit
CURSEUR CURS_PROD CONTRAT *COND(CCOD_PRO = :ZZ_COD_PRO) *TRI(CNUM_CON *ASC)
...
* Ouverture du curseur, lecture du premier enregistrement, boucle de lecture
* des enregistrements jusqu'au dernier afin de remplir une liste mémoire,
* puis fermeture du curseur.
VIDER_LST LST_CONTRATS
OUVRIR_SQL_C CURS_PROD
LIRE_AV_SQL_C CURS_PROD
TANT_QUE *SQLCODE = *NORMAL
PRESENTER CONTRAT
INSERER_ELT LST_CONTRATS
LIRE_AV_SQL_C CURS_PROD
REFAIRE
FERMER_SQL_C CURS_PROD
Autre exemple d'utilisation
Dans le paragraphe de déclaration :
ALPHA(200) WREQUETE
NUM_P(3,0) WZONE1
CURSEUR C1 :WREQUETE
Dans le paragraphe d'exécution :
WREQUETE = 'SELECT ZONE1 FROM schema.matable WHERE ZONE1 > 10'
OUVRIR_SQL_C C1
LIRE_AV_SQL_C C1 :WZONE1
...
FERMER_SQL_C C1