IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Forms Oracle Discussion :

[Forms 9i] RAISE_APPLICATION_ERROR


Sujet :

Forms Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut [Forms 9i] RAISE_APPLICATION_ERROR
    Bonjour,

    En parcourant la gestion des exceptions dans la doc, j'ai écrit la procédure suivante sous Forms 9i :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    PROCEDURE APPLIQUER_FORMULES(LC_formule	IN OUT B03FS.FS_FORMULE_QTE%TYPE) IS
    	LC_oeno											VARCHAR2(15);
    	LC_pa_simule								B0337.T37_CODE%TYPE;
    	LC_pattern_concentration		VARCHAR2(60) := '<CONCENTRATION>';
    	LC_pattern_pa_simule				VARCHAR2(60) := '<([[:alnum:]]{5})>';
    	LC_pattern_spec							VARCHAR2(60) := '<SPECIFICATIONS';
    BEGIN
    	DEFAULT_VALUE('<NULL>', 'GLOBAL.GC_liste_PA_simules');
    	IF :GLOBAL.GC_liste_PA_simules = '<NULL>' THEN
    		Raise_Application_Error(-20606, 'Application de la formule B03FS impossible.');
    	END IF;
    ...
    Cependant, à la compilation j'obtiens un message d'erreur stipulant :
    identifier 'RAISE_APPLICATION_ERROR' must be declared
    Pourquoi est-ce que je ne peux utiliser cette commande sous Forms 9i ?

  2. #2
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Parce que ce n'est pas une commande reconnue par forms.

    Sous forms, l'équivalent est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    message ('Application de la formule B03FS impossible.');
    raise form_trigger_failure;

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Salut plaineR,

    Citation Envoyé par plaineR
    Parce que ce n'est pas une commande reconnue par forms.
    Ah !

    Du coup j'ai 2 questions :
    1/ comment savoir quand je lis la doc "PL/SQL User's Guides and References" si les commandes qui y figurent sont reconnues par Forms (la plupart le sont mais pas EXECUTE IMMEDIATE, RAISE_APPLICATION_ERROR, etc.) ?

    2/ comment gérer avec une simple RAISE FORM_TRIGGER_FAILURE le cas suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE OR REPLACE PROCEDURE P1 IS
    BEGIN
      ...
      P2;
      ...
    END;
    sachant que P2 peut lever une exception (ce que j'essayais de faire avec RAISE_APPLICATION_ERROR) et que dans P1 je veux distinguer le cas avec erreur de celui sans ?

    Ce que je veux faire me semble à faire mais sans RAISE ou RAISE_APPLICATION_ERROR j'avoue que je me sens perdu

    Merci mon cher plaineR

  4. #4
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Citation Envoyé par Magnus
    1/ comment savoir quand je lis la doc "PL/SQL User's Guides and References" si les commandes qui y figurent sont reconnues par Forms (la plupart le sont mais pas EXECUTE IMMEDIATE, RAISE_APPLICATION_ERROR, etc.) ?
    En essayant , je ne vois pas d'autres solutions, je ne pense pas qu'il y ait de doc qui indique les fonctionnalités PL non utilisables par forms.

    Citation Envoyé par Magnus
    2/ comment gérer avec une simple RAISE FORM_TRIGGER_FAILURE le cas suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE OR REPLACE PROCEDURE P1 IS
    BEGIN
      ...
      P2;
      ...
    END;
    sachant que P2 peut lever une exception (ce que j'essayais de faire avec RAISE_APPLICATION_ERROR) et que dans P1 je veux distinguer le cas avec erreur de celui sans ?
    Essaie juste après l'appel de p2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if not form_success then
    Si cela ne fonctionne pas, rien ne t'empêche de créer un entête de package et d'y déclarer des exceptions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PACKAGE pack_except IS
      err_p2 exception;
    END;
    Dans P2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ....
    raise pack_except.err_p2;
    ....
    Dans P1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ....
    begin
      p2;
      ....
    exception
      when pack_except.err_p2 then
         ....
    end;
    ....

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Citation Envoyé par plaineR
    En essayant , je ne vois pas d'autres solutions, je ne pense pas qu'il y ait de doc qui indique les fonctionnalités PL non utilisables par forms.
    Question en bois, réponse en bois

    Concernant tes 2 propositions, j'avais aussi pensé à FORM_SUCCESS mais j'ai finalement opté pour l'utilisation d'un argument de type IN OUT dans la procédure P2 que je teste au retour de l'appel dans P1.

    Merci du coup de main.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 87
    Dernier message: 06/07/2011, 15h33
  2. Héritage entre Forms
    Par BarBal dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 17h44
  3. [Kylix] SIGSEGV 11 - creation form
    Par pram dans le forum EDI
    Réponses: 1
    Dernier message: 29/08/2002, 15h24
  4. [FORMS] Chemin des icones (intégré FAQ 150 QR)
    Par jerome62 dans le forum Forms
    Réponses: 2
    Dernier message: 30/07/2002, 08h32
  5. Form principale non visible au demarrage!!!!
    Par toufou dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/07/2002, 21h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo