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)