Particularités
de DB2
Voici
quelques-unes des particularités
du langage ULTIM qui s'appliquent au traitement des bases de données
DB2. Plusieurs de celles-ci sont illustrées dans
l'exemple qu'on retrouve plus loin.
- Possibilité de convertir automatiquement des
portions ou l'ensemble du dictionnaire DB2 en dictionnaire ULTIM.
- Sélection des éléments à traiter à partir du dictionnaire existant ou directement dans une clause SELECT du programme.
- Sélection du sous-système lors de l'exécution par l'entremise du fichier de contrôle d'ULTIM.
- Gestion automatique des protocoles de liaison avec les bases.
- Accès au code de retour de l'énoncé SQL codé ou généré.
Exemple
de dictionnaire codé en ULTIM, mais généralement converti à partir de DB2
./* Information sur la division
./ DB2 DIVISION, TDIV, 30 ./ ELEMENTS VAL,SECT D-VAL (1,A,10) D-SECT (11,A,7)
./* Information de base sur le client
./ DB2 CLIENT, TCLI, 30 ./ ELEMENTS NO, SECT, DUE, LPAY
NO-COMPTE
(1, N, 7) SECTEUR
(8, A, 6)
SOLDE (14, N, 8.2, 10,
@ED:$) DERNIER-PAIEMENT (22, N,
8, 10, @ED:@DATE)
./* Nom et adresse du client
./ DB2 NOMADR , TNAM , 105 ./ ELEMENTS NAME, ADD1, ADD2, CODE
./ COBOL
./ COPIER PDSDESC (CUSTNAME)
./* Zones COBOL provenant de CUSTNAME et traduites en ULTIM * NOM (1,A,15) * ADR-1 (16,A,30) * ADR-2 (46,A,30) * CODE (76,N,7)
Exemple
de programmation
DEBUT
DEMO.
DEFINIR VALEUR (P, 5.2, 10,
@ED:$).
* Lecture des données
TRAITER
CHAQUE CLIENT OU DERNIER-PAIEMENT < 20150301 ET SOLDE > 0.
TRAITER OBTENIR @DB2:VALEUR DONT ; On met dans la zone VALEUR (SELECT VAL FROM DIVISION ; l'élément VAL de la table DIVISION
WHERE SECT =
:SECTEUR). ; dont SECT = SECTEUR de
CLIENT CRITERES VALEUR < 125000.
; Traiter si VALEUR < 125000
TRAITER OBTENIR NOMADR
; Lire l'entrée de la table
TNAM DONT (CODE = :NO-COMPTE). ; (nom ULTIM=NOMADR) dont le CODE
;
correspond à NO-COMPTE de CLIENT
* Rapport à produire
OPTIONS
ENTETE=AUTO, ESPACEMENT = 5.
TABLEAU
CLIENT:SECTEUR, NOMADR:NOM, NO-COMPTE, SOLDE(12,TOTAL), DERNIER-PAIEMENT.
TITRE COMPTES EN SOUFFRANCE DE
DEUX MOIS
OU PLUS AU 1 MAI 2015
CONTROLE
SOUS-TOTAUX=1.
FIN
Rapport
en colonnes produit par les énoncés TABLEAU, TITRE et CONTROLE
5
MAI 2015 PAGE
1
COMPTES EN
SOUFFRANCE DE DEUX MOIS OU PLUS
AU 1 MAI 2015
SECTEUR
------NOM------ NO
COMPTE
SOLDE
DERNIER
PAIEMENT
ESTRIE
BELLE
LUMIERE
843896
$360.47 2015/02/11
BRILLANTINE
3246538
$199.00 2014/12/15
ECLAIRAGE
INC.
386660
$895.45 2015/01/12
LUMIERE
INC.
2369108
$34.94 2015/02/21
...........................................
$1,489.86
MTL
DECOR
SANTE
3143486
$10.00 2015/02/01
DECORUM
INC.
1071638
$2,189.10 2015/01/06
RUSSELL &
SONS
2225751
$194.90 2014/12/21
SERVICES
RAPIDO
1387
$4,189.95 2015/01/28
...........................................
$6,583.95
............................................
$8,073.81
|