m4 est un puissant préprocesseur utilisable avec une variété de langages, dont SPL et HTML. J’ai réécrit le SP GetRank que j’ai présenté dans l’article en deux parties « Inside V5R2 SPL Error Handling » pour illustrer la manière d’utiliser la macro en programmation SPL. La version originale de la
Utiliser m4 avec SPL
SP (procédure stockée) démontre une approche élaborée mais quelque peu complexe du traitement des exceptions SPL. Le volume du code de traitement des exceptions rend aussi cette technique difficile à appliquer sur un grand nombre de SP.
La version originale de la SP Get- Rank contient environ 360 lignes de code source. J’ai réduit de moitié le code source pour GetRank et amélioré sa lisibilité en définissant et en utilisant un jeu de macros m4. De plus, je dispose maintenant d’un jeu de macros pour simplifier l’écriture d’autres SP et pour les rendre plus homogènes et plus faciles à maintenir.
Ici, j’illustre le mode d’utilisation de m4 pour une programmation SP plus complexe (l’exemple complet peut être téléchargé www.itpro.fr Club Abonnés). La figure 4A montre le code source d’entrée chargé de définir les avertissements et les exceptions SQL traités ou signalés par cette SP. Les macros SqlDclWarning et SqlDclException prennent trois arguments : un nom court pour la condition, une valeur d’état SQL associée à la condition, et un texte de message associé à la condition.
Le code généré en figure 4B inclut des commentaires d’en-tête qui documentent les avertissements et les exceptions que cette SP pourrait retourner à son appelant. En utilisant les diversions m4, j’ai codé la macro SqlProcBodyBegin (que l’on rencontrera plus tard dans l’entrée) pour générer des déclarations pour les conditions et variables SPL qui servent de mnémoniques au texte du message. L’utilisation de ces macros est simple et elle produit une sortie homogène en différents points du code SP.
Un dernier exemple illustre l’utilisation de pushdef et popdef pour maintenir une pile de labels de blocs pour les blocs SPL imbriqués. La figure 5A utilise la macro SqlBlockBegin avec un seul argument qui fournit le label du bloc. Cette macro génère un commentaire séparateur et un délimiteur de bloc Begin libellé. Dans la macro, la valeur du paramètre est poussée sur une pile. La macro SqlBlockEnd fait surgir la pile et génère un délimiteur End block libellé. Et voilà des labels en correspondance parfaite. Cette petite astuce évite des délimiteurs begin-end discordants dans le code SPL.
Téléchargez cette ressource
Construire une infrastructure cloud optimisée pour l’IA avec Microsoft Azure
Les managers IT ont besoin d’une stratégie claire et de solutions concrètes pour préparer leur infrastructure cloud à l'adoption de l'IA, tout en optimisant les coûts, renforçant la sécurité et développant les compétences internes. Découvrez tous les conseils dans ce guide Insight.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
- À l’aube de 2026, le SaaS entre dans une nouvelle phase
- Face à l’urgence écologique, l’IT doit faire sa révolution
- IoT et cybersécurité : les bases que chaque décideur doit maîtriser
Articles les + lus
CES 2026 : l’IA physique et la robotique redéfinissent le futur
Les 3 prédictions 2026 pour Java
Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
Face à l’urgence écologique, l’IT doit faire sa révolution
D’ici 2030, jusqu’à 90 % du code pourrait être écrit par l’IA, pour les jeunes développeurs, l’aventure ne fait que commencer
À la une de la chaîne Tech
- CES 2026 : l’IA physique et la robotique redéfinissent le futur
- Les 3 prédictions 2026 pour Java
- Semi-conducteurs : comment l’Irlande veut contribuer à atténuer la pénurie mondiale de puces
- Face à l’urgence écologique, l’IT doit faire sa révolution
- D’ici 2030, jusqu’à 90 % du code pourrait être écrit par l’IA, pour les jeunes développeurs, l’aventure ne fait que commencer
