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 24/01/2008, 11h16   #1
Yoh
Candidat au titre de Membre du Club
 
Inscription : juillet 2002
Messages : 56
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 56
Points : 14
Points : 14
Par défaut [FORMS 6] ON-ERROR et Exceptions personnalisées

Bonjour,

Dans un écran forms (version 6), je cherche à déclarer, pour tout l'écran, une exception qui sera levée dans une certaine situation.

Lorsque cette exception est levée, je veux que le déclencheur ON-ERROR (général à l'écran) la catche et adopte un comportement particulier, juste pour cette exception.

Le problème est que le ON-ERROR ne fait pas la différence, il ne capte que l'erreur "FRM-40734 : Erreur interne PL/SQL".

Avez-vous une solution ?
Y'a-t-il un moyen de déclarer des erreurs de type "FRM-xxxxx" comme on peut déclarer des exceptions ?

Merci d'avance pour vos réponses.
Yoh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2008, 09h28   #2
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
L'erreur que tu as est due au fait que tu ne propage l'erreur dans ton trigger "ON ERROR".
Voici ce que j'utilise dans toutes mes "forms" (TRIGGER ON ERROR)

[code]
DECLARE
errnum NUMBER := ERROR_CODE;
errtxt VARCHAR2(128) := ERROR_TEXT;
errtyp VARCHAR2(16) := ERROR_TYPE;
BEGIN
break;
-- on trappe le message 'NO CHANGES TO APPLY'
IF errnum = 40405 THEN
null;
ELSIF errnum = 40600 THEN
pkgpluton.Msgalert('MSG00016','','E',FALSE,'','Enregistrement déja saisi !');
RAISE Form_Trigger_Failure;
ELSE
Message(errtyp||'-'||TO_CHAR(errnum)||': '||errtxt);
RAISE Form_Trigger_Failure;
END IF;
END;

/CODE]

NB : Je fais le même genre de trigger pour les messages (ON MESSAGE)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
DECLARE 
  msgnum NUMBER       := MESSAGE_CODE; 
  msgtxt VARCHAR2(128) := MESSAGE_TEXT; 
  msgtyp VARCHAR2(16)  := MESSAGE_TYPE; 
BEGIN 
 -- on trappe le message 'NO CHANGES TO APPLY'
  IF msgnum = 40405 OR msgnum = 40401 THEN 
    NULL;
  ELSE 
    Message(msgtyp||'-'||TO_CHAR(msgnum)||': '||msgtxt); 
  END IF; 
END;
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda 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 18h00.


 
 
 
 
Partenaires

Hébergement Web