VADELIA |
SADELIA |
WADELIA |
EADELIA |
|
(I/B) (C/S) |
(B) (C/S) |
(I/B) (C/S) |
(B) (C/S) |
Attention : cet ordre n'est pas compatible avec les parties serveur AS/400.
Paragraphe d'utilisation
DECLARATION
Syntaxe
INSTRUCTION_SQL NomInstructionSQL TypeInstruction
TypeInstruction |
→ |
*CLONE | *REFERENCE | *VALEUR | rien |
Description
Cet ordre déclare une instruction SQL qui sera construite via l'ordre CONST_INSTR_SQL, et utilisée par les ordres :
- CURSEUR pour définir un curseur dynamique,
- EXEC_SQL pour définir un EXEC_SQL dynamique,
- CHARGEMENT pour définir un chargement de type *SQL_D et
- CHARGER_SQL_LST pour définir une condition dynamique.
Le type d'instruction *CLONE indique que les variables utilisées dans l'ordre CONST_INSTR_SQL seront clonées, remplacées par un ? dans l'instruction SQL, et c'est la variable clonée (qui contiendra la valeur qu'avait la variable au moment du CONST_INSTR_SQL) qui sera utilisée comme variable hôte à l'exécution de la requête SQL (exécution du OUVRIR_SQL_C , du EXEC_SQL, du CHARGT_LST ou du CHARGER_SQL_LST).
Le type d'instruction *REFERENCE indique que les variables utilisées dans l'ordre CONST_INSTR_SQL seront remplacées par un ? dans l'instruction SQL, et ce sont ces variables qui seront utilisées comme variables hôtes à l'exécution de la requête SQL (exécution du OUVRIR_SQL_C, du EXEC_SQL, du CHARGT_LST ou du CHARGER_SQL_LST), avec la valeur qu'elles auront au moment de l'exécution (qui peut être différente de la valeur qu'elles avaient au moment du CONST_INSTR_SQL).
Le type d'instruction *VALEUR indique que les variables utilisées dans l'ordre CONST_INSTR_SQL seront remplacées par leur valeur assainie (au sens SQL) dans l'instruction SQL.
Ne pas indiquer un type d'instruction est équivalent au type *CLONE.
Par exemple
Exemple 1 :
INSTRUCTION_SQL inst1 *CLONE
...
W1 = 'abc'
CONST_INSTR_SQL inst1 *INIT 'DELETE FROM MA_TABLE WHERE MaCol = :W1'
* l'instruction SQL a pour valeur "DELETE FROM MA_TABLE WHERE MaCol = ?"
W1 = 'xyz'
EXEC_SQL (:inst1)
* suppression des enregistrements ayant la colonne MaCol = 'abc'
Exemple 2 :
INSTRUCTION_SQL inst1 *REFERENCE
...
W1 = 'abc'
CONST_INSTR_SQL inst1 *INIT 'DELETE FROM MA_TABLE WHERE MaCol = :W1'
* l'instruction SQL a pour valeur "DELETE FROM MA_TABLE WHERE MaCol = ?"
W1 = 'xyz'
EXEC_SQL (:inst1)
* suppression des enregistrements ayant la colonne MaCol = 'xyz'
Exemple 3 :
INSTRUCTION_SQL inst1 *VALEUR
...
W1 = 'abc' ↑ Haut de page
CONST_INSTR_SQL inst1 *INIT 'DELETE FROM MA_TABLE WHERE MaCol = :W1'
* l'instruction SQL a pour valeur "DELETE FROM MA_TABLE WHERE MaCol = 'abc' "
W1 = 'xyz'
EXEC_SQL (:inst1)
* suppression des enregistrements ayant la colonne MaCol = 'abc'