Zones Packées référencées
Déclaration des zones packées dans les programmes à partir de zones référencées en base de données.
Voici un exemple
Soit le fichier TESTNUM :
A R TESTNUMF
A NUMPCK 5P 0
A NUMETE 5S 0
Programme 1 :
dcl-f
TESTNUM
USAGE(*INPUT ) ;
DCL-DS DS_fichier extname('TESTNUM')
END-DS;
read TESTNUM ;
// Fin de programme
*InLr = *on;
Résultat de la compilation :
*RNF7031 NUMETE S(5,0) 10D 78M
Programme 2 identique à Programme 1 mais avec la DS_fichier qualified :
**free
//
dcl-f
TESTNUM
USAGE(*INPUT ) ;
DCL-DS DS_fichier extname('TESTNUM')
qualified
END-DS;
read TESTNUM ;
// Fin de programme
*InLr = *on;
Résultat de la compilation :
*RNF7031 NUMETE P(5,0) 78D
Conclusion
Les zones qualifiées sont automatiquement déclarées en packed, en effet elles sont considérées comme des zones internes.
Très peu d’impact en réalité, sauf à des DS passées en paramètre par exemple.
C’est le cas également pour les likerec où les zones sont implicitement qualified :
dcl-ds enreg likerec( TESTNUM) ;
if enreg.numete = … ;