Page 1 sur 1

SQLRPGLE et Datastructure en V6R1 [INTO :maDS impossible?]

Posté : mar. 17 nov. 2009, 14:30:51
par braconnier
Bonjour à tous,

en v6r1 il semble impossible d'affecter les valeurs des zones d'une DS sous cette forme

Code : Tout sélectionner

D WrkMECANDS      DS                                            
D WrkmnANOPECU                   4S 0 OVERLAY(WrkMECANDS)       
D WrkmnNROPECU                   9S 0 OVERLAY(WrkMECANDS: *Next)
D WrkmnCDSUPCU                   2A   OVERLAY(WrkMECANDS: *Next)
D WrkmnNRSUPCU                   9S 0 OVERLAY(WrkMECANDS: *Next)
D WrkmnLBSUPCU                  50A   OVERLAY(WrkMECANDS: *Next)
D WrkmnDTDEBVL                  10A   OVERLAY(WrkMECANDS: *Next)
D WrkmnDTFINVL                  10A   OVERLAY(WrkMECANDS: *Next)

(...)

 C/EXEC SQL                                                     
 C+  DECLARE MECAN_CURSOR CURSOR FOR                            
 C+    SELECT ANOPECU, NROPECU, CDSUPCU, NRSUPCU, LBSUPCU,      
 C+           DTDEBVL, DTFINVL                                  
 C+    FROM CDSUPCUP0 SUP                                       
 C+     WHERE SUP.CDOPESI = :CD3450CDOPESI                      
 C+ FOR READ ONLY                                               
 C/END-EXEC                                                     

(...)

C/EXEC SQL              
C+ FETCH MECAN_CURSOR   
C+  INTO :WrkMECANDS    
C/END-EXEC              

cela se solde par une erreur SQL0312 au niveau de la précompilation.
Nota : cela se passait bien en V5R4.

Avez vous déjà confronter à ce problème ?
S'agit il d'un bug de la commande CRTSQLRPI en V6R1 ?

merci pour votre participation.
cordialement.

SQL et DS

Posté : mer. 18 nov. 2009, 17:56:12
par cmasse
Bonjour,

non ça marche (en tout les cas, le code suivant fonctionne chez moi en V6R1)

Code : Tout sélectionner

Dretour           DS                                       
D pr_code                       10I 0                      
D pr_nom                        50                         
D appel_code                    10I 0                      
 /free                                                     
   Exec sql                                                
    SELECT pr_code, pr_nom, appel_code                     
    INTO &#58;retour FROM Producteurs WHERE pr_code < 2;   
    
   *inlr = *on;                                            
 /end-free                                                 
le problème doit être ailleurs...


Christian

(sans texte)

Posté : jeu. 19 nov. 2009, 10:15:12
par braconnier
Effectivement, après avoir creusé un peu, c'est en fait l'overlay qui ne fonctionne pas.

en modifiant la DS comme suit, cela fonctionne

Code : Tout sélectionner

D WrkMECANDS                    94A                      
D WrkmnANOPECU                   4S 0 OVERLAY&#40;WrkMECANDS&#41;       
D WrkmnNROPECU                   9S 0 OVERLAY&#40;WrkMECANDS&#58; *Next&#41;
D WrkmnCDSUPCU                   2A   OVERLAY&#40;WrkMECANDS&#58; *Next&#41;
D WrkmnNRSUPCU                   9S 0 OVERLAY&#40;WrkMECANDS&#58; *Next&#41;
D WrkmnLBSUPCU                  50A   OVERLAY&#40;WrkMECANDS&#58; *Next&#41;
D WrkmnDTDEBVL                  10A   OVERLAY&#40;WrkMECANDS&#58; *Next&#41;
D WrkmnDTFINVL                  10A   OVERLAY&#40;WrkMECANDS&#58; *Next&#41;
Toutefois un incident a été ouvert chez IBM ( à suivre...)

SQLRPGLE et Datastructure en V6R1 [Resolu]

Posté : jeu. 19 nov. 2009, 12:19:11
par braconnier
Le problème est résolu, cela fonctionne avec la description de la DS dans sa première forme.

pour ce faire Nous avons installé les 2 PTFs suivantes :
  • SI36312 pour le produit 5761ST1
    SI36313 pour le produit 5761SS1.


Merci pour votre participation.

Cordialement,
Ludovic Braconnier
GEOS informatique