> Tech > Améliorations de la technique SDT

Améliorations de la technique SDT

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Alors que le mot-clé Like de la carte D (et les mots-clés LikeDs et LikeRec, comme nous le verrons bientôt) est la possibilité RPG IV fondamentale que les SDT exploitent, la fonction /Copy est ce qui vous permet d'utiliser les SDT comme types de données standard. Vous pouvez déclarer des

ensembles
de SDT dans un ou plusieurs
membres source puis utiliser /Copy
pour les incorporer automatiquement
quand vous compilerez un programme.
Les figures 2A et 2B montrent des fragments de deux ensembles de
SDT. Le membre source StdDtaType de
la figure 2A inclut quelques-uns des
SDT très utilisés qui pourraient être copiés
dans tous les programmes. La figure
2B contient les SDT associés à 
SQL qui seraient copiés dans des programmes
contenant des instructions
SQL (ou des programmes qui doivent
contenir des données pour des programmes
SQL). La figure 3 montre un
fragment de code provenant d’un programme
qui utilise des SDT provenant
de ces deux membres source. Créer
des membres source que l’on peut copier
dans des programmes d’application
est essentiel pour utiliser les SDT
efficacement parce que cela rend la
technique facile à  utiliser et garantit la
cohérence dans les définitions SDT
entre les programmes.
Les figures 2A et 2B illustrent deux méthodes importantes pour améliorer
davantage la technique SDT. Toutes les
déclarations du champ SDT incluent le
mot-clé Based. Cela conduit le compilateur
à  ne pas allouer de stockage
pour les champs SDT. Comme on
le voit figure 2A, le StdDtaTypePtr est déclaré mais jamais défini. Comme les
champs SDT ne sont jamais utilisés
pour contenir des données, le fait de
les définir comme des variables basées
qui ne sont jamais allouées évite de
gaspiller du stockage de programme.
A noter que j’ai déclaré différents champs pointeurs (StdDtaTypePtr et
SqlDtaTypePtr) dans les deux membres
source. Cette méthode utilise un peu
de stockage supplémentaire pour les
champs pointeurs et simplifie l’utilisation
des SDT dans des programmes qui
contiennent SQL, comme je l’expliquerai
plus loin.
Dans l’exemple de la figure 2A, le
SdtDtaTypePtr et les déclarations de
champs SDT sont placés dans un bloc
de code qui est conditionnellement
traité pendant la compilation. Le compilateur
compile le code source entre
les directives /If et /EndIf de cet
exemple uniquement quand le symbole
SDT_DTA_TYPE n’est pas défini ;
sinon, le bloc de code est sauté.
SDT_DTA_TYPE est défini dans le bloc
conditionnel, ce qui empêche le code
d’être compilé plus d’une fois, même
quand le membre source est référencé
sur de multiples directives /Copy dans
le même processus de compilation.
L’exemple de la figure 2B utilise le symbole
SQL_DTA_TYPE de la même manière.
Ce genre d’utilisation de la compilation
conditionnelle évite des
problèmes potentiels quand on assemble
des applications en utilisant
des directives and/or nested /Copy
multiples.

Téléchargez cette ressource

Les mégatendances cybersécurité et cyber protection 2024

Les mégatendances cybersécurité et cyber protection 2024

L'évolution du paysage des menaces et les conséquences sur votre infrastructure, vos outils de contrôles de sécurité IT existants. EPP, XDR, EDR, IA, découvrez la synthèse des conseils et recommandations à appliquer dans votre organisation.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010