> Tech > Variations sur un thème

Variations sur un thème

Tech - Par iTPro - Publié le 24 juin 2010
email

Dans de nombreux cas, on peut atteindre les mêmes objectifs de programmation en choisissant un déclencheur, une procédure stockée, ou une UDF. Tous trois amélioreront la modularité et la réutilisation du code. Vous pouvez même considérer le même programme à  la fois comme une UDF et une procédure stockée. Mais

Variations sur un thème

il
existe des différences importantes dans les
mécanismes d’appel et de traitement des
paramètres, selon qu’il s’agit de déclencheurs, de procédures
stockées ou d’UDF. Il faut comprendre ces distinctions
pour choisir entre ces trois techniques selon l’application.
Un déclencheur iSeries est un attribut d’un fichier physique.
Il est activé chaque fois que l’événement de base de
données approprié se produit, et ce que l’accès au fichier
physique soit direct ou indirect. La base de données lance un
déclencheur quand un certain événement de base de données
se produit sans instruction explicite en provenance de
l’application.
Les procédures stockées sont appelées explicitement à 
partir de SQL à  peu près de la même manière que l’on appelle
un programme ou une procédure ILE à  partir de RPG,
CL ou autres langages. Dès lors qu’une procédure stockée
iSeries a été créée, elle peut être appelée à  partir de toute
interface basée sur SQL qui supporte les appels de procédures
stockées, y compris SQL imbriqué dans des langages
comme RPG, Cobol ou CL, via JDBC en Java, ou à  partir d’une
autre procédure stockée. Cependant, les procédures stockées
ne peuvent pas être appelées à  l’aide d’interfaces SQL
interactives comme Run SQL Scripts dans iSeries Navigator.
Les procédures stockées sont prises en charge par de
nombreuses plates-formes, bases de données et environnements
de programmation différents. C’est donc une solution
idéale pour des routines standard (comme des calculs de
taxes) qu’on a besoin d’appeler depuis de multiples applications.
Par exemple, si l’application Java s’exécute sur une
autre plate-forme, on peut quand même utiliser JDBC pour
appeler une procédure stockée iSeries. En outre, beaucoup
d’outils d’accès aux données basés sur le client supportent
les appels de procédures stockées.
Pour bien comprendre la manière dont les UDF sont lancées,
le mieux est de considérer l’aspect fonction intégrée de
SQL. Tout comme on peut utiliser une fonction intégrée
pour convertir un type de donnée date en un type de donnée
numérique, on peut écrire une UDF pour convertir un
type de devise en un autre, par exemple. De la même manière,
on peut écrire des UDF agrégées, qui imitent le comportement
d’une fonction intégrée, comme Sum ou Count.
Bien entendu, on peut aussi écrire des UDF n’ayant rien à 
voir avec une quelconque fonction intégrée.
On peut utiliser des UDF dans tout environnement SQL
iSeries – à  la fois dans des applications (via SQL imbriqué, par
exemple) et dans une requête ad hoc, par exemple. Pour utiliser
une UDF, incluez-la simplement dans l’instruction SQL,
comme ceci :


SELECT Hoffman.MyFunction01(OLQTY)
AS « Total Quantity »
from Hoffman.ORDLINE

Une UDF s’exécute généralement de manière répétitive
chaque fois qu’elle apparaît dans une instruction SQL, sauf si
l’instruction SQL traite une ligne (enregistrement) unique.
Bien que l’exemple ci-dessus renvoie une valeur unique, il
ajoute la valeur de OLQTY à  un total cumulé pour chaque
ligne traitée. De même, si vous incluez une UDF pour multiplier la quantité par le prix unitaire et
envoyer le prix dans le cadre d’une instruction
Select, elle s’exécutera une
fois pour chaque ligne traitée. Dans ce
cas, une valeur de renvoi (prix étendu)
peut être extraite pour chaque ligne et
devient partie intégrante du jeu de résultats
que l’instruction Select renvoie.

Téléchargez gratuitement cette ressource

Comment sécuriser la Digital Workplace ?

Comment sécuriser la Digital Workplace ?

Avec le recours généralisé au télétravail, les entreprises ont ouvert davantage leur SI. En dépit des précautions prises, elles ont mécaniquement élargi leur surface d’exposition aux risques. Découvrez 5 axes à ne pas négliger dans ce Top 5 Sécurité du Télétravail.

Tech - Par iTPro - Publié le 24 juin 2010