Lire les contraintes

Ce code lit les contraintes de suppression (cascade et restrict), élimine les restrict, fait un rapport prêt à coller.
Il m’a servi pour activer le restrict de tous les liens d’une base où les suppressions ne respectaient pas l’intégrité référentielle.
Accessoirement, il plante en v14R5 - c’est pas mon jour.
<code 4D>
TABLEAU ENTIER LONG($tableID_al;0x0000)
TABLEAU ENTIER LONG($columnID_al;0x0000)
TABLEAU TEXTE($deleteRule_at;0x0000)
Début SQL
SELECT _USER_CONS_COLUMNS.TABLE_ID, _USER_CONS_COLUMNS.COLUMN_ID, _USER_CONSTRAINTS.DELETE_RULE
FROM _USER_CONS_COLUMNS
LEFT JOIN _USER_CONSTRAINTS
ON _USER_CONSTRAINTS.CONSTRAINT_ID=_USER_CONS_COLUMNS.CONSTRAINT_ID
WHERE _USER_CONSTRAINTS.CONSTRAINT_TYPE = ‘4DR’
INTO :$tableID_al, :$columnID_al, :$deleteRule_at;
Fin SQL

Boucle ($i_l;Taille tableau($deleteRule_at);1;-1)
Si ($deleteRule_at{$i_l}=“restrict”) //“cascade”
SUPPRIMER DANS TABLEAU($tableID_al;$i_l)
SUPPRIMER DANS TABLEAU($columnID_al;$i_l)
SUPPRIMER DANS TABLEAU($deleteRule_at;$i_l)
Fin de si
Fin de boucle

$rapport_t:=""
Boucle ($i_l;1;Taille tableau($deleteRule_at))
$rapport_t:=$rapport_t+Nom de la table($tableID_al{$i_l})
$rapport_t:=$rapport_t+"."
$rapport_t:=$rapport_t+Nom du champ($tableID_al{$i_l};$columnID_al{$i_l})
$rapport_t:=$rapport_t+" * “+$deleteRule_at{$i_l}
$rapport_t:=$rapport_t+”\r"
Fin de boucle
FIXER TEXTE DANS CONTENEUR($rapport_t)
</code 4D>