Bonjour,
Lorsque je tente de supprimer les données de toutes les tables de la BDD j'obtient le message suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Project raised exception class EUIBerror with message action canceled by trigger(3) to preserve data integrity cannot deactivate index used by a PRIMARY/UNIQUE constraint at procedure INIT_MODULE
1) Les données sont supprimées dans la procedure stockée INIT_MODULE et avant d'entamer la suppression je désactive les index
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 ............désactivation des index................... UPDATE RDB$INDICES SET RDB$INDEX_INACTIVE = 1 WHERE (RDB$SYSTEM_FLAG IS NULL OR RDB$SYSTEM_FLAG = 0); .....début de la suppression.................................................... DELETE FROM TABLE1 DELETE FROM TABLE2 DELETE FROM TABLE (n) ............réactivation des index................... UPDATE RDB$INDICES SET RDB$INDEX_INACTIVE = 0 WHERE (RDB$SYSTEM_FLAG IS NULL OR RDB$SYSTEM_FLAG = 0);
2)- Comme je n'arrive pas à désactiver les triggers dans la PS avant celle des index je le fais depuis l'application avec la propriété DeactiveAllTriggers du TUIBDatabase. Désactiver les triggers dans la PS me renvoi le message suivant:
Code de désactivation des triggers:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 UPDATE operation is not allowed for system table RDB$TRIGGERS.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 UPDATE RDB$TRIGGERS SET RDB$TRIGGER_INACTIVE = 1 WHERE RDB$TRIGGER_SOURCE IS NOT NULL AND ((RDB$SYSTEM_FLAG = 0) OR (RDB$SYSTEM_FLAG IS NULL)) ;
Pour les triggers ca ne pose plus de problème puisque ca marche depuis l'application mon problème c'est les index qui ne ce désactivent pas pour pouvoir executer les suppressions.
J'utilise FB3
Auriez-vous SVP une solution ?
En vous remerciant.
Partager