7.4 La génération de code
187
© Dunod – La photocopie non autorisée est un délit.
create table LIGNE (NOMT char(24) not null,
SEQ decimal(2) not null,
LTEXTE varchar(80) not null);
Les requêtes SFW de création des fragments se présentent comme suit. Pour simplifier, on a limité des types de valeurs à char(n) et integer. On généralisera aisément aux autres types.
insert into LIGNE
select TNAME,1,'create table '||trim(TNAME)||'('
from
SYS_TABLE;
insert into LIGNE
select TNAME,9,');'
from
SYS_TABLE;
insert into LIGNE
select TNAME,2,'
'
||CNAME
||case CTYPE
when 'int' then ' integer'
when 'char'
then ' char('
||cast(CLENGTH as char(3))
||')'
else '** type invalide **'
end
||case NULLS
when 'N' then ' not null' else ''
end
||','
from
SYS_COLUMN
Il reste à reconstituer les instructions de création de tables à partir de ces fragments :
select LTEXTE
from
LIGNE
order by NOMT,SEQ;
Remarque
La définition de la dernière colonne se termine aussi par une virgule, ce qui ne pose
pas de problème si on complète la procédure par la déclaration des identifiants et des
clés étrangères (exercice 7.28).
7.4.4 Génération de pages HTML
La présentation du résultat d’une requête SFW est fonctionnelle mais n’a rien
d’attrayant lorsqu’on la compare aux pages Web auxquelles nous sommes accou-
Précédent

- 187/436

Suivant