Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Forms
Forms Forum d'entraide sur Oracle Forms
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/08/2007, 19h19   #1
Candidat au titre de Membre du Club
 
Inscription : août 2007
Messages : 40
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 40
Points : 13
Points : 13
Par défaut Suppression des enregistrements enfants

Bonjour ,

Voici mon pb: J'ai une form contenant 2 blocs: un bloc maître bloc1 et un bloc détail bloc2.
J'aimerais supprimer lorsque je me place sur le bloc1 l'enregistrement en cours et tous les enregistrements enfants associés , sans être ennuyé par le déclencheur on check delete Master de Forms.
je crée donc un déclencheur PRE-DELETE au niveau du bloc1 contenant le code suivant:

GO_BLOCK(BLOC2);
first _record;
LOOP
delete_record;
Exit when :system.last_record = 'TRUE' ;
next_record;
END LOOP;

Mais il passe même pas dans mon trigger PRE-DELETE et le déclencheur on check delete Master se déclenche !
Quelqu'un connaît il un moyen de réaliser cela proprement ?
D'avance Merci.
tommy_f est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2007, 00h28   #2
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 450
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 450
Points : 4 209
Points : 4 209
Gère la relation maitre détail à la main.
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 14h50   #3
Candidat au titre de Membre du Club
 
Inscription : août 2007
Messages : 40
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 40
Points : 13
Points : 13
Par défaut Suppression des enregistrements enfants

Je ne comprends pas
Tu veux dire qu'il faut supprimer la containte d'intégrité dans la relation ( c'est, en effet, une propriété de la relation).

D'avance, merci.
tommy_f est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/09/2007, 15h31   #4
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 450
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 450
Points : 4 209
Points : 4 209
Non, ne pas faire de relation.
1/ Créer un trigger WHEN-NEW-RECORD-INSTANCE au niveau du maitre qui va faire un execute query dans le détail.
2/ Mettre la clause where du détail pour ramener les enreg en fonction de la ligne du maitre.
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 16h33   #5
Candidat au titre de Membre du Club
 
Inscription : août 2007
Messages : 40
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 40
Points : 13
Points : 13
OK
Mais j'ai besoin de réaliser une suppression. (un véritable delete en base de la ligne maître et de toutes ses lignes détails associées).
A quel niveau dois je réaliser cette suppression ?

D'avance, Merci
tommy_f est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2007, 16h51   #6
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 450
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 450
Points : 4 209
Points : 4 209
Ben soit tu le fait en PL_SQL (dans le PRE-DELETE),

soit tu le fait comme dans ton premier post (mais je trouve que c'est pas terrible et niveau perfs, avec + de 50 lignes ça va ramer).
Code :
1
2
3
4
5
6
7
GO_BLOCK(BLOC2);
first _record;
LOOP
delete_record;
Exit when :system.last_record = 'TRUE' ;
next_record;
END LOOP;
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2007, 09h28   #7
Candidat au titre de Membre du Club
 
Inscription : août 2007
Messages : 40
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 40
Points : 13
Points : 13
Ca marche (en PL dans le Pre Delete)
Merci beaucoup !
tommy_f est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/09/2007, 09h43   #8
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 450
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 450
Points : 4 209
Points : 4 209
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h00.


 
 
 
 
Partenaires

Hébergement Web