Bonjour,
A la précompilationn j’ai l’erreur « SQL0314 : Position 13 Nom de la variable VRF_TSMCRT déjà utilisé. » Je ne la comprend pas. Ci-dessous la requête.
EXEC SQL
SELECT Cidmcl,
Coduex,
Nbatim,
Nescal,
Netage,
Nposit,
Cbasel,
Opgmcr,
Oprfcr,
Tsmcrt
INTO :Vrf_Uuid_Lien,
:Vrf_Coduex,
:Vrf_Nbatim,
:Vrf_Nescal,
:Vrf_Netage,
:Vrf_Nposit,
:Vrf_Cbasel,
:Vrf_Opgmcr,
:Vrf_Oprfcr,
:Vrf_Tsmcrt
FROM Qtemp.Bnxlgp
WHERE Cidmcl = :Ref_Uuid_Lien;
Ci-dessous, le code complet pour aider :
// ============================================================
// RPGUnit test case.
// ============================================================
dcl-proc testMAJ_BEEP export;
dcl-pi *n end-pi;
// Valeurs initiales enregistrement existant
Dcl-s Ini_uuid_lien Char(36);
Dcl-s Ini_Nbatim Char(2) Inz('01');
Dcl-s Ini_Nescal Char(2) Inz('01');
Dcl-s Ini_Netage Char(2) Inz('01');
Dcl-s Ini_Nposit Char(2) Inz('01');
Dcl-s Ini_Cbase Char(1) Inz('R');
Dcl-s Ini_Coduex Packed(8:0) Inz(90000000);
Dcl-s Ini_Cbasel Char(1) Inz('R');
Dcl-s Ini_Opgmcr Char(10) Inz('PGMCREAT');
Dcl-s Ini_Oprfcr Char(10) Inz('PRFCRREAT');
Dcl-s Ini_Tsmcrt Timestamp Inz(z'2019-11-15-17.03.07.956490');
Dcl-s Ref_uuid_lien Char(36);
Dcl-s Ref_Nbatim Char(2) Inz('01');
Dcl-s Ref_Nescal Char(2) Inz('01');
Dcl-s Ref_Netage Char(2) Inz('01');
Dcl-s Ref_Nposit Char(2) Inz('02');
Dcl-s Ref_Cbase Char(1) Inz('R');
Dcl-s Ref_Coduex Packed(8:0) Inz(90000000);
Dcl-s Ref_Cbasel Char(1) Inz('R');
Dcl-s Ref_Opgmcr Char(10) Inz('PGMCREAT');
Dcl-s Ref_Oprfcr Char(10) Inz('PRFCRREAT');
Dcl-s Ref_Tsmcrt Timestamp Inz(z'2019-11-15-17.03.07.956490');
Dcl-s Ref_Opgmmo Pointer Based(Procedure);
Dcl-s Ref_Oprfmo Pointer Based(USer);
Dcl-s Vrf_uuid_lien Char(36);
Dcl-s Vrf_Nbatim Char(2);
Dcl-s Vrf_Nescal Char(2);
Dcl-s Vrf_Netage Char(2);
Dcl-s Vrf_Nposit Char(2);
Dcl-s Vrf_Cbase Char(1);
Dcl-s Vrf_Coduex Packed(8:0);
Dcl-s Vrf_Cbasel Char(1);
Dcl-s Vrf_Opgmcr Char(10);
Dcl-s Vrf_Oprfcr Char(10);
Dcl-s Vrf_Tsmcrt Timestamp;
Dcl-s Vrf_Opgmmo Char(10);
Dcl-s Vrf_Oprfmo Char(10);
Dcl-s Vrf_Tsmcrt Timestamp;
Ref_uuid_lien = Genuuid();
EXEC SQL
INSERT INTO Qtemp.Bnxlgp(Cidmcl, Coduex, Nbatim, Nescal, Netage,
Nposit, Cbasel, Opgmcr, Oprfcr, Tsmcrt)
VALUES (:Ini_Uuid_Lien,
:Ini_Coduex,
:Ini_Nbatim,
:Ini_Nescal,
:Ini_Netage,
:Ini_Nposit,
:Ini_Cbase,
:Ini_Opgmcr,
:Ini_Oprfcr,
:Ini_Tsmcrt);
EXEC SQL
SELECT Cidmcl,
Coduex,
Nbatim,
Nescal,
Netage,
Nposit,
Cbasel,
Opgmcr,
Oprfcr,
Tsmcrt
INTO :Vrf_Uuid_Lien,
:Vrf_Coduex,
:Vrf_Nbatim,
:Vrf_Nescal,
:Vrf_Netage,
:Vrf_Nposit,
:Vrf_Cbasel,
:Vrf_Opgmcr,
:Vrf_Oprfcr,
:Vrf_Tsmcrt
FROM Qtemp.Bnxlgp
WHERE Cidmcl = :Ref_Uuid_Lien;
Print('Executing: * testMAJ_BEEP()');
// Place your assertions here.
Aequal(Ref_uuid_lien:Vrf_uuid_lien);
Aequal(Ref_Nbatim:Vrf_Nbatim);
Aequal(Ref_Nescal:Vrf_Nescal);
Aequal(Ref_Netage:Vrf_Netage);
Aequal(Ref_Nposit:Vrf_Nposit);
Aequal(Ref_Cbase:Vrf_Cbase);
Iequal(Ref_Coduex:Vrf_Coduex);
Aequal(Ref_Cbasel:Vrf_Cbasel);
Aequal(Ref_Opgmcr:Vrf_Opgmcr);
Aequal(Ref_Oprfcr:Vrf_Oprfcr);
Assert(Ref_Tsmcrt=Vrf_Tsmcrt:'Le timestamp de création a été modifié');
Aequal(Ref_Opgmmo:Vrf_Opgmmo);
Aequal(Ref_Oprfmo:Vrf_Oprfmo);
Assert(Vrf_Tsmmod<>0:'Le Timestamp de Mod. n''a pas été mis à jour');
end-proc;
Bonjour,
cherchez l’erreur ! j’ai trouvé :
Dcl-s Vrf_Oprfcr Char(10);
Dcl-s Vrf_Tsmcrt Timestamp;
Dcl-s Vrf_Opgmmo Char(10);
Dcl-s Vrf_Oprfmo Char(10);
Dcl-s Vrf_Tsmcrt Timestamp;
contient 2 fois
Vrf_Tsmcrt
Qu’est-ce qu’on gagne ?
Pauvre de moi exact, le 2nd devrait être Vrf_Tsmmod. 🙁 😉
Tu gagnes ma gratitude éternel (c’est long).