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
OUVRIR_SQL_C NomCurseur AvecParamètres
AvecParamètres |
→ |
Rien | AVEC SuiteIdVar |
Description
Cet ordre ouvre le curseur NomCurseur.
Il faut ouvrir un curseur déclaré par l'ordre CURSEUR avant de le lire.
Le paramètre AVEC n'est autorisé que si le curseur est dynamique : correspondant au USING de SQL, il permet d'indiquer les variables hôtes qui se substitueront aux ? contenus dans la variable requête. L'intérêt par rapport à la mise directe des valeurs des paramètres dans la requête construite dynamiquement est de simplifier l'écriture du code, mais surtout d'assurer une meilleure performance d'exécution dans le cas où le curseur sera exécuté plusieurs fois avec des valeurs de substitutions différentes.
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
* Déclaration d'un curseur en syntaxe Visual Adélia sur l'entité CLIENT dans le paragraphe DECL PGM
CURSEUR CURS_CLI_PAYS CLIENT *COND(CPAYS_CLI = :ZPNOM_PAYS)
* Ouverture du curseur, lecture et insertion des enregistrements correspondants
* dans la liste graphique LST_CLIENTS
VIDER_LST LST_CLIENTS:LISTE
OUVRIR_SQL_C CURS_CLI_PAYS
LIRE_AV_SQL_C CURS_CLI_PAYS
TANT_QUE *SQLCODE = *NORMAL
PRESENTER CLIENTS
INSERER_ELT LST_CLIENTS:LISTE
LIRE_AV_SQL_C CUR_CLI_PAYS
REFAIRE
FERMER_SQL_C CURS_CLI_PAYS
* Curseur dynamique avec utilisation du AVEC
CURSEUR CURS_DYN :REQUETE
REQUETE = 'select CNOM_CLI from COMMERCIAL.CLIENTS where CVILLE = ?'
WVILLE 'PARIS'
OUVRIR_SQL_C CURS_DYN AVEC WVILLE