![Traitement des erreurs](https://www.itpro.fr/wp-content/themes/iTPro/assets/img/placeholders/placeholder.jpg)
Traitement des erreurs
Les erreurs survenant pendant l'exécution d'un trigger SQL sont renvoyées en utilisant SQLSTATE 09000 et SQLCODE - 723. Un trigger SQL peut aussi utiliser l'instruction SIGNAL pour générer ses propres types d'erreurs. Dans de tels cas, un SQLCODE -438 et le SQLSTATE spécifié dans l'instruction SIGNAL seront renvoyés. On accède
Lire l'article![Logique du trigger](https://www.itpro.fr/wp-content/themes/iTPro/assets/img/placeholders/placeholder.jpg)
Logique du trigger
Le corps du trigger est constitué d'une ou plusieurs instructions SQL. En général, ce peut être n'importe laquelle d'entre elles. Une restriction a été indiquée précédemment : un trigger avant ne peut pas exécuter des instructions de modifications de données comme Update ou Create. Cette restriction exceptée, la plupart des
Lire l'article![Modifier et corriger des données](https://www.itpro.fr/wp-content/themes/iTPro/assets/img/placeholders/placeholder.jpg)
Modifier et corriger des données
ALWREPCHG (Allow Repeated Change) est une autre option de trigger externe dont on peut se demander si les triggers SQL la supportent. Les triggers SQL sont toujours créés avec la valeurALWR EPCHG(*YES). Les triggers externes utilisent cette option principalement pour permettre la modification de données dans la nouvelle image d'enregistrement
Lire l'article![Accès aux données déclenchantes](https://www.itpro.fr/wp-content/themes/iTPro/assets/img/placeholders/placeholder.jpg)
Accès aux données déclenchantes
Quand un trigger externe se déclenche, il utilise souvent les données de la requête de la base de données déclenchante. Par exemple, un trigger d'insertion peut placer les données pour une nouvelle ligne dans une file d'attente de données. C'est le buffer des triggers qui met ces données à la
Lire l'article![Options des triggers](https://www.itpro.fr/wp-content/themes/iTPro/assets/img/placeholders/placeholder.jpg)
Options des triggers
La majorité des triggers SQL procurent des fonctionnalités équivalentes aux triggers externes actuels, et aussi une poignée de fonctions dont ne disposent pas les triggers externes.
Comme une table, un trigger a un nom en deux parties qui inclut un nom de schéma (bibliothèque). Le nom du trigger doit
Lire l'article![Exigences des triggers](https://www.itpro.fr/wp-content/uploads/2015/05/0ff4fd78a4b8d8b3a3dc53605676961f.jpg)
Exigences des triggers
Si vous avez codé des fonctions ou des procédures cataloguées dans les releases précédentes, vous trouverez des points communs avec le développement de triggers SQL sur l'iSeries. En effet, on utilise les mêmes instructions pour coder la logique de gestion dans le trigger, et les triggers SQL sont aussi implémentés
Lire l'article![Figure 3F](https://www.itpro.fr/wp-content/themes/iTPro/assets/img/placeholders/placeholder.jpg)
Figure 3F
Programme de recherche phonétique dans Customer
FCustSrch CF E WorkStn SFile( RecSfl : SflRecNbr ) F IndDS( CustSrchIndDS ) FCustomerL1IF E K Disk * =================================================================== * = Entry parameters * =================================================================== D EntryParms PR ExtPgm( 'CUSTSRCH' ) D 2 0 D EntryParms PI D LastNameIn 20 D CustSrchIndDS DS D Exit Lire l'article
![Figure 3E](https://www.itpro.fr/wp-content/uploads/2015/05/2f39f8b07523faf1635593fd9506e913.jpg)
Figure 3E
Fichier écran de recherche phonétique dans Customer
* =================================================================== * = File.......... CustSrch * = Description... Phonetic customer search * =================================================================== A I NDARA A R RECSFL SFL A LASTNAME 20 O 5 2 A FIRSTNAME 10 O 5 23 A R RECSFC SFLCTL(RECSFL) A OVERLAY A CF03(01) A 02 SFLEND Lire l'article
![Figure 3D](https://www.itpro.fr/wp-content/uploads/2015/05/843e84ca99fc36a67fc13fdad587b549.jpg)
Figure 3D
Fichier maître Customer par nom phonétiquement
* =================================================================== * = File.......... CustomerL1 * = Description... Customer Master File with phonetic sequencing = * =================================================================== A R CUSTOMERR PFILE(CUSTOMER) A K LASTSOUND A K LASTNAME A K FIRSTNAMELire l'article
![Figure 3C](https://www.itpro.fr/wp-content/uploads/2015/05/a4fb2194c5dd341b83d6827b7f4600e2.png)
Figure 3C
Ajouts de maintenance au fichier maître Customer
C/exec SQL C+ Set :LastSound = Soundex( :LastName ) C/end-execLire l'article
![Figure 3B](https://www.itpro.fr/wp-content/uploads/2015/05/6c0c5f49c0ae6550b7cb73729e5f8970.jpg)
Figure 3B
Nouveau fichier maître Customer
* =================================================================== * = File.......... Customer * = Description... Customer Master File * =================================================================== A R CUSTOMERR A CUSTID 5 A LASTNAME 20 A FIRSTNAME 10 A LASTSOUND 4 A K CUSTIDLire l'article
![Figure 3A](https://www.itpro.fr/wp-content/uploads/2015/05/9dcaff4b2af39602fa5315e56b72f5ad.png)
Figure 3A
Fichier maître Customer
* =================================================================== * = File.......... Customer * = Description... Customer Master File * =================================================================== A R CUSTOMERR A CUSTID 5 A LASTNAME 20 A FIRSTNAME 10 A K CUSTIDLire l'article
![Figure 2B](https://www.itpro.fr/wp-content/uploads/2015/05/52c1b99ebd01cbc3137f7d1a4e40e32c.jpg)
Figure 2B
Extraire la valeur week-of-year ISO avec la fonction scalaire Week_ISO
* =================================================================== * = Description... Retrieve ISO week-of-year * =================================================================== D SomeDate S D Inz( D'2001-10-23' ) D ISOWeek S 5I 0 C/exec SQL C+ Set :ISOWeek = Week_ISO( SomeDate ) C/end-exec C Eval *InLR = *OnLire l'article
![Figure 2A](https://www.itpro.fr/wp-content/uploads/2015/05/d5a1bd249d6996d6ea31b4544f9148b1.jpg)
Figure 2A
Extraire la valeur week-of-year ISO avec RPG seulement
* =================================================================== * = Description... Retrieve ISO week-of-year * =================================================================== D RtvDayOfWeek PR 5I 0 D D Value D RtvISOWeek PR 5I 0 D D Value D SomeDate S D Inz( D'2001-10-23' ) D ISOWeek S 5I 0 C Eval ISOWeek = RtvISOWeek( Lire l'article
![Figure 1B](https://www.itpro.fr/wp-content/uploads/2015/05/20895cb937d0bfbc9d4b1df7fb0fc5a7.jpg)
Figure 1B
Extraire la valeur day-of-week avec la fonction scalaire DayOfWeek
* =================================================================== * = Description... Retrieve day-of-week * =================================================================== H NoMain D RtvDayOfWeek PR 5I 0 D D Value P RtvDayOfWeek B Export D RtvDayOfWeek PI 5I 0 D DateIn D Value D DayOfWeekNbr S 5I 0 C/exec SQL C+ Set :DayOfWeekNbr Lire l'article
![Figure 1A](https://www.itpro.fr/wp-content/uploads/2015/05/4505f3584ba23c763a43a022bc7758e5.jpg)
Figure 1A
Extraire la valeur day-of-week avec RPG seulement
* =================================================================== * = Description... Retrieve day-of-week * =================================================================== H NoMain D RtvDayOfWeek PR 5I 0 D D Value P RtvDayOfWeek B Export D RtvDayOfWeek PI 5I 0 D DateIn D Value D SomeSunday S D Inz( D'2001-05-20' ) D Days S 10I 0 Lire l'article
![Essayez donc](https://www.itpro.fr/wp-content/uploads/2015/05/c119f9eb0919268244f7bba0acb91612.jpg)
Essayez donc
On voit bien que les fonctions scalaires SQL sont simples et puissantes. Je vous engage vivement à consulter les articles et les manuels IBM indiqués dans l'encadré Autres lectures, pour voir quelles fonctions scalaires vous sembleront utiles. Soyez certain que quand vous en trouverez une et l'utiliserez, vos applications seront
Lire l'article![» à‡a ressemble à … » n’est pas simplement pour des charades](https://www.itpro.fr/wp-content/uploads/2015/05/b7349e4d83e9cc034d20ac79d69e90ea.jpg)
» à‡a ressemble à … » n’est pas simplement pour des charades
L'une des compagnies aériennes que j'utilise pourrait faire son profit des fonctions scalaires SQL. Ou plutôt, les clients de cette compagnie aérienne devraient en profiter ! Je vais démontrer comment par le récit d'une mésaventure et des exemples de l'une de mes fonctions scalaires favorites, Soundex, ajoutée dans la V4R5.
Lire l'article![Engranger les bénéfices](https://www.itpro.fr/wp-content/uploads/2015/05/6c7c044dcb99d960627807aec5c3df77.jpg)
Engranger les bénéfices
Voyons un exemple avec des avantages plus évidents . L' ISO (International Standards Organization) définit un standard (ISO 8601) pour calculer la semaine de l'année dans laquelle tombe une certaine date. Selon ce standard, lundi marque le début de la semaine et la première semaine d'une année contient le premier
Lire l'article![Le mécanisme des fonctions scalaires imbriquées](https://www.itpro.fr/wp-content/uploads/2015/05/bd97ce15e5b368fd2c09534e47fc069b.jpg)
Le mécanisme des fonctions scalaires imbriquées
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
Lire l'article