Téléchargement des produits


Version anglaise


 


VADELIA

SADELIA

WADELIA

EADELIA


(I/B) (S)

(B) (S)

(I/B) (S)

(B) (S)


Attention : cet ordre n'est pas compatible avec les parties serveur AS/400.


Paragraphe d'utilisation

Tous


Syntaxe

CONST_INSTR_SQL  NomInstructionSQL  InitOuValeur

InitOuValeur 

*INIT | *INIT ConstanteAlpha | ConstanteAlpha

ou


CONST_INSTR_SQL  NomInstructionSQL   RecupMode idVarInstr 

RecupMode 

*RECUP_INSTR | *RECUP_INSTR_VL


Description 

Cet ordre construit une instruction SQL. Les instructions SQL construites par cet ordre sont exemptées d'injection SQL.


Le paramètre *INIT réinitialise l'instruction SQL.


La constante ConstanteAlpha est ajoutée à la valeur courante de l'instruction SQL. Dans le cas où cette constante comporte des éléments :idVariable, ces éléments seront remplacés par un ? dans le cas d'une instruction SQL de type *CLONE ou REFERENCE, ou par leur valeur assainie (au sens SQL) dans le cas d'une instruction SQL de type *VALEUR.


L'utilisation du paramètre *RECUP_INSTR a pour effet de placer dans la variable idVarInstr le contenu de l'instruction construite. 

L'utilisation du paramètre *RECUP_INSTR_VL a pour effet de placer dans la variable idVarInstr le contenu de l'instruction construite avec la valeur des paramètres à la place du caractère ? pour les types *CLONE et *REFERENCE.


Par exemple

Exemple 1:

INSTRUCTION_SQL inst1 *CLONE

CURSEUR cur1 :inst1


W1 = 'ABC'
W2 = 45
CONST_INSTR_SQL inst1 *INIT 'Select COL_1 FROM ENTITE1 WHERE COL1 <> :W1'
CONST_INSTR_SQL inst1 ' AND COL_2 = :W2 '
CONST_INSTR_SQL inst1 *RECUP_INSTR MaRequête
* la variable MaRequête a pour valeur 'Select COL_1 FROM ENTITE1 WHERE COL1 <> ? AND COL_2 = ? '
W1 = *BLANK
W2 = 0
OUVRIR_SQL_C cur1
* le curseur est ouvert avec des variables hôtes de substitution ayant pour valeur 'ABC' et 45 (valeur des variables au moment de l'exécution du CONST_INTR_SQL les mentionnant)
LIRE_AV_SQL_C cur1 :WRESULT1

FERMER_SQL_C cur1


Exemple 2 :

INSTRUCTION_SQL inst2 *REFERENCE

LISTE maliste *REF_MLD(ENTITE1)


CONST_INSTR_SQL inst2 *INIT
CONST_INSTR_SQL inst2 'COL_1 = :W1 AND COL_2 = :W2'

W1 = 'ABC'

W2 = 45

CHARGER_SQL_LST maliste ENTITE1 *COND(:inst2)

* Le curseur interne utilisé pour charger maliste sera un curseur avec des variables hôtes de substitution ayant pour valeur 'ABC' et 45 (valeur des variables au moment de l'exécution du CHARGER_SQL_LST).



Exemple 3 :

INSTRUCTION_SQL inst3 *REFERENCE


CONST_INSTR_SQL inst3 *INIT 'COL_1 <> :W1 AND COL_2 = :W2'

W1 = 'ABC'

W2 = 45


CONST_INSTR_SQL inst3 *RECUP_INSTR_VL MaRequete
* la variable MaRequete a pour valeur 'Select COL_1 FROM ENTITE1 WHERE COL1 <> 'ABC' AND COL_2 = 45 '

Exemple 4 :

INSTRUCTION_SQL inst4 *VALEUR


CONST_INSTR_SQL inst4 *INIT 'COL_1 <> :W1 AND COL_2 = :W2'

W1 = 'ABC'

W2 = 45


CONST_INSTR_SQL inst4 *RECUP_INSTR MaRequete
* la variable MaRequete a pour valeur 'Select COL_1 FROM ENTITE1 WHERE COL1 <> 'ABC' AND COL_2 = 45 '

CONST_INSTR_SQL inst4 *RECUP_INSTR_VL MaRequete
* la variable MaRequete a pour valeur 'Select COL_1 FROM ENTITE1 WHERE COL1 <> 'ABC' AND COL_2 = 45 '

*RECUP_INSTR et *RECUP_INSTR_VL sont identiques dans le cas d'une INSTRUCTION_SQL de type *VALEUR

↑ Haut de page


 



  • Aucune étiquette