> Tech > Le mécanisme des fonctions scalaires imbriquées

Le mécanisme des fonctions scalaires imbriquées

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

  Ceux qui pensent que le SQL imbriqué est source de confusion et se demandent pourquoi s'en préoccuper, seront peut-être surpris en voyant la simplicité avec laquelle on peut imbriquer des fonctions scalaires dans les applications. Pour illustrer cela, examinons à  nouveau la fonction scalaire DayOfWeek. La figure 1A présente un

Le mécanisme des fonctions scalaires imbriquées

programme de service dans lequel la procédure RtvDayOfWeek extrait le jour de la semaine pour une date donnée. Cette procédure accepte un champ date et renvoie une valeur indiquant le jour de la semaine auquel la date tombe. Le programme définit d’abord une date Sunday arbitraire ( Some Sunday ) sur laquelle RtvDayofWeek fonde ses calculs. Ensuite, la procédure détermine le nombre de jours entre SomeDay et la date fournie en entrée (DateIn). Enfin, la procédure utilise un modulo arithmétique pour convertir ce nombre de jours en une valeur comprise entre 0 et 6 et ajoute 1 avant de renvoyer la valeur à  l’appelant. On pourra s’étonner que la procédure utilise des opérations %Rem imbriquées (nested) ; mais la procédure fait cela pour traiter toutes les dates d’entrée sans qu’il soit nécessaire de s’ajuster aux dates antérieures à  la date scindée arbitraire SomeSunday.

  Voyons maintenant un programme de service équivalent (figure 1B) qui utilise la fonction scalaire SQL DayOfWeek. Dans cet exemple, la procédure RtvDayOfWeek accepte à  nouveau un champ date comme entrée et renvoie une valeur de 1 à  7 qui indique le jour de la semaine auquel la date tombe. Toutefois, dans ce cas, aucun calcul n’est nécessaire. La procédure définit simplement une variable hôte (DayOfWeekNbr) dans laquelle la fonction scalaire DayOfWeek place la valeur, puis exécute la fonction SQL pour extraire le jour de la semaine. Pour exécuter les instructions SQL dans vos programmes RPG, utilisez la forme générale :

C/exec SQL
C+ YourSQLStatement
C/end-exec

où YourSQLStatement est l'instruction SQL que vous voulez exécuter. Notez que dans la figure 1B, la procédure utilise l'instruction Set pour attribuer une valeur à  une variable hôte. Notez également que la syntaxe SQL requiert qu'un signe deux-points précède le nom de la variable hôte. Vous vous interrogez peut-être sur l'avantage de la méthode SQL. Après tout, ces deux programmes de service sont pratiquement de même longueur et complexité. Je pourrais répondre que la méthode de la fonction scalaire est plus claire et moins sujette à  erreur, mais ces exemples démontrent seulement le mécanisme d'utilisation des fonctions scalaires en RPG. Dans un code plus complexe, nous verrons que les avantages peuvent être plus substantiels.

Téléchargez cette ressource

Guide de technologie 5G pour l’entreprise

Guide de technologie 5G pour l’entreprise

Pourquoi la 5G est-elle faite pour votre entreprise ? La 5G peut améliorer la vitesse, la fiabilité et la capacité de votre réseau, permettant ainsi une meilleure collaboration, une productivité accrue et une prise de décision plus rapide. Notre livre blanc " The Big Book of Enterprise 5G" vous fournit les informations stratégiques dont vous avez besoin pour prendre des décisions éclairées et préparer votre entreprise à prospérer dans l'ère de la 5G. Cradlepoint, part of Ericsson est le leader mondial des solutions de réseau sans fil 4G LTE et 5G fournies via le cloud. Connectez vos employés, lieux et objets avec la 4G LTE et la 5G pour un WAN sans fil d'entreprise.

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