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
MAJ_SQL NomEntité SetColonneMaj ConditionAdélia ParamètreNull ParamètreRG
SetColonneMaj |
Þ | SetColonne | *ALL |
SetColonne |
Þ | SetColonne, Champ = Expression |
|
| Champ = Expression | Champ = :IdVarHote | |
:IdVarHote |
Þ | IdVar | IdVar :IdVarIndicatrice |
ParamètreNull |
Þ | *INDIC_NULL | Rien |
ParamètreRG |
Þ | *NON_RG | *RG | Rien |
Description
Cet ordre met à jour un ou plusieurs champs d'un enregistrement dans l'entité NomEntité, en respectant la condition ConditionAdélia (facultative) et en modifiant les valeurs spécifiées pour les champs Champ.
Il correspond à l'ordre SQL : "Update NomEntité set Champ1 = expression where ConditionAdélia".
*ALL signifie que tous les champs de l'entité (à l'exception de l'éventuelle propriété auto-incrément) sont mis à jour en prenant les valeurs des variables de l'entité correspondant aux champs.
Expression est une expression alphanumérique ou numérique Adélia.
Pour les programmes de type que ADELIA, il est possible de s'assurer que l'enregistrement n'est pas verrouillé en le testant à l'aide du mot réservé *BLOQUE.
Le paramètre *INDIC_NULL permet de prendre en compte la gestion des valeurs NULL (alimentées suite à une lecture ou à l'utilisation de l'ordre AFFECTER_INDIC) lors de l'écriture de la ligne.
Ce paramètre ne s'utilise que dans le cas où le paramètre SetColonneMaj est à *ALL.
Lorsqu'on veut que la valeur des colonnes soit nulle et qu'on indique les colonnes sur lesquelles porte la mise à jour, on précise pour IdVArHote une variable d'affectation IdVar et une variable indicatrice IdVarIndicatrice (variable de type NUM_BIN_2 contenant une valeur négative (-1) pour indiquer que la colonne prendra la valeur nulle, et 0 pour que la colonne prenne comme valeur le contenu de IdVar).
Le paramètre *RG permet de générer les règles de gestion implicites de mise à jour 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 mise à jour 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.
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
MAJ_SQL CLIENT *ALL *COND(CCODE_CLIENT= :ZCODE_CLIENT:Valeur) *INDIC_NULL
MAJ_SQL COMMANDE CMONTANT=CMONTANT*0,9 ,CDATE_MODIF= :DATE *COND(CNUM_CDE = :ZNUM_CDE)
SI WFACTURE_CREEE = 'O'
INDIC_FACTURE = 0
SINON
INDIC_FACTURE = -1
FIN
MAJ_SQL COMMANDE CMONTANT=CMONTANT*0,9 , -
CNUM_FACTURE= :ZNUM_FACTURE :INDIC_FACTURE, -
CDATE_MODIF= :DATE *COND(CNUM_CDE = :ZNUM_CDE)