Com­ment tes­ter une …
 
Notifications 
Reti­rer tout

Com­ment tes­ter une valeur nulle en Rpg ile ?

Posts
Uti­li­sa­teurs
Likes
62  Vu
0
Début du sujet

Bon­jour,

Com­ment fait-on pour véri­fier qu’une variable est nulle ?

Cor­dia­le­ment,

  EXEC SQL
    SELECT Cidmcl,
           Coduex,
           Nbatim,
           Nescal,
           Netage,
           Nposit,
           Cbasel,
           Opgmcr,
           Oprfcr,
           Tsmcrt, 
           Opgmmo, 
           Oprfmo, 
           Tsmmod
      INTO :Vrf_Uuid_Lien,
           :Vrf_Coduex,
           :Vrf_Nbatim,
           :Vrf_Nescal,
           :Vrf_Netage,
           :Vrf_Nposit,
           :Vrf_Cbasel,
           :Vrf_Opgmcr,
           :Vrf_Oprfcr,
           :Vrf_Tsmcrt,
           :Vrf_Opgmmo,
           :Vrf_Oprfmo,
           :Vrf_Tsmmod
      FROM Qtemp.Bnxlgp     
     WHERE Cidmcl = :Ref_Uuid_Lien;   
----
----
  Assert(%nullind(Vrf_Tsmmod) = *On:'Le Timestamp de Mod. n''a pas été mis à jour');          

Éti­quettes du sujet
1 Réponse 
0

Dans le cas pré­sent, il s’a­git du cas spé­cial des variables hôtes. Il faut uti­li­ser une variable de type Inter­ger 5:0 pour conte­nir l’in­for­ma­tion nullité.

Dcl-s l_valeur_null int(5);    

Elle est uti­li­sée dans la requête SQL comme suit :

EXEC SQL
    SELECT Cidmcl,
           Coduex,
           Nbatim,
           Nescal,
           Netage,
           Nposit,
           Cbasel,
           Opgmcr,
           Oprfcr,
           Tsmcrt, 
           Opgmmo, 
           Oprfmo, 
           Tsmmod
      INTO :Vrf_Uuid_Lien,
           :Vrf_Coduex,
           :Vrf_Nbatim,
           :Vrf_Nescal,
           :Vrf_Netage,
           :Vrf_Nposit,
           :Vrf_Cbasel,
           :Vrf_Opgmcr,
           :Vrf_Oprfcr,
           :Vrf_Tsmcrt,
           :Vrf_Opgmmo,
           :Vrf_Oprfmo,
           :Vrf_Tsmmod :l_Valeur_nulle
      FROM Qtemp.Bnxlgp     
     WHERE Cidmcl = :Ref_Uuid_Lien;   

Si la variable l_valeur_nulle contient ‑1, c’est que la variable hôte est nulle. Sinon elle contient 0.

Exemple d’u­sage :

if l_valeur_nulle = 0;
  l_timestamp_modif = Vrf_tsmmod;
Elseif l_valeur_nulle = -1;
  clear l_timestamp_modif; 
Endif;

Cordialement,

Share :