3. Routines de gestion d’une table#
3.1. Routine TBCRSD : Créer une nouvelle table#
TBCRSD(nomtab, base)
nomtab |
in |
K19 |
Nom de la nouvelle table à créer Si elle existe déjà, on la détruit + émission <A> |
base |
in |
K1 |
Base de création de la table table (’G’,’V’,…) |
3.2. Routine TBAJPA : Ajouter des paramètres à la table#
TBAJPA (nomtab,nbpar,nompar,typpar)
nomtab |
in |
K19 |
Nom de la table où l’on veut ajouter des paramètres |
nbpar |
in |
I |
Nombre de paramètres à ajouter |
nompar |
in |
V(K16) |
Liste des noms des paramètres à ajouter |
typpar |
in |
V(K8) |
Liste des types des paramètres : ‘R’,’I’,’C’,’K8’,’K16’,’K24’,’K32’ |
3.3. Routine TBEXIP : Tester l’existence et le type d’un paramètre#
TBEXIP (nomtab,para,exist,typpar)
nomtab |
in |
K19 |
Nom de la table à examiner |
para |
in |
K16 |
paramètre à tester |
exist |
out |
L |
.TRUE. : le paramètre existe déjà dans la table nomtab |
typpar |
out |
K8 |
type des paramètres s’il existe déjà dans la table : ‘R’,’I’,’C’,’K8’,’K16’,’K24’,’K32‘ |
3.4. Routine TBFUTB : Fusionner plusieurs tables en une seule table#
TBFUTB (tabout,basout,ntab,ltabin,para,typpar,vi,vr,vc,vk)
tabout |
in |
K19 |
Nom de la table que l’on veut créer |
basout |
in |
K1 |
Base de création de la table tabout(’G’,’V’,…) |
ntab |
in |
I |
Nombre de tables que l’on veut fusionner |
ltabin |
in |
K19 |
Noms des tables que l’on veut fusionner |
para |
in |
K16 |
Nouveau paramètre (facultatif) qui permettra de distinguer l’origine de chacune des lignes de la nouvelle tablesi para=’ ’les arguments suivants ne sont pas utilisés. |
typpar |
in |
K8 |
Type du nouveau paramètre (facultatif) |
vi |
in |
V(I) |
Liste des valeurs pour le nouveau paramètre ‘I’(facultatif) |
vr |
in |
V(R) |
Liste des valeurs pour le nouveau paramètre ‘R’(facultatif) |
vc |
in |
V(C) |
Liste des valeurs pour le nouveau paramètre ‘C’(facultatif) |
vk |
in |
V(K*) |
Liste des valeurs pour le nouveau paramètre ‘K’(facultatif) |
Cette routine peut être pratique pour créer une table creuse, le développeur peut réaliser chaque sous‑table séparément et utiliser la routine TBFUTB pour les fusionner en une seule table.
Exemple :
On veut fusionner les 2 tables : T1 et T2
A |
B |
C |
D |
x1 |
x2 |
x3 |
|
x4 |
x5 |
||
x6 |
x7 |
x8 |
A |
B |
E |
y1 |
y2 |
y3 |
y4 |
y5 |
Si l’on écrit :
ltabin(1)=T1
ltabin(2)=T2
CALL TBFUTB (T3,'V',2,ltabin,' ',kbid,ibid,rbid,cbid,kbid)
On obtient la table : T3
A |
B |
C |
D |
E |
x1 |
x2 |
x3 |
||
x4 |
x5 |
|||
x6 |
x7 |
x8 |
||
y1 |
y2 |
y3 |
||
y4 |
y5 |
Si l’on écrit :
ltabin(1)=T1
ltabin(2)=T2
VK(1)='ACTION1'
VK(2)='ACTION2'
CALL TBFUTB (T3,'V',2,ltabin,'N','K8',ibid,rbid,cbid,VK)
On obtient la table : T3
N |
A |
B |
C |
D |
E |
ACTION1 |
x1 |
x2 |
x3 |
||
ACTION1 |
x4 |
x5 |
|||
ACTION1 |
x6 |
x7 |
x8 |
||
ACTION2 |
y1 |
y2 |
y3 |
||
ACTION2 |
y4 |
y5 |
Remarques sur l’ordre des lignes et des colonnes de la nouvelle table :
Les lignes de la nouvelle table sont ordonnées en mettant bout à bout les lignes des tables que l’on fusionne.
Pour ordonner les paramètres on adopte les règles suivantes :
- le nouveau paramètre (facultatif) est numéroté en premier,
- les paramètres de la 1ère table de ltabin sont ensuite ajoutés dans l’ordre qu’ils ont dans ltabin(1)
- les paramètres de la 2ème table de ltabin sont ensuite ajoutés (sauf ceux déjà présents dans ltabin(1) ) dans l’ordre qu’ils ont dans ltabin(2)
- …
3.5. Routine DETRSD : Détruire une table#
CALL DETRSD( 'TABLE_SDASTER', nomtab)
3.6. Routine COPISD : Dupliquer une table#
CALL COPISD( 'TABLE_SDASTER','V',tabin,tabout)