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

VB.NET Discussion :

Récupérer une exception Oracle personnalisée


Sujet :

VB.NET

  1. #1
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut Récupérer une exception Oracle personnalisée


    J'ai créé une exception Oracle personnalisé, le code en question:
    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
       PROCEDURE proc_ajout_culture (p_id_culture        IN VARCHAR2,
                                     p_id_exploitation   IN VARCHAR2,
                                     p_rendement         IN NUMBER,
                                     p_residus           IN NUMBER,
                                     p_irrigation        IN NUMBER)
       IS
          PB_DataAlreadyExists   EXCEPTION;
          v_nb                   NUMBER;
       BEGIN
          ...
       EXCEPTION
          WHEN PB_DataAlreadyExists
          THEN
             DBMS_OUTPUT.put_line (
                'La culture existe déjà pour l''exploitation spécifiée');
       END;
    Le problème c'est comment la remonter dans VB.Net ?


    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  2. #2
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Petite solution, j'ai un peu transformé mon exception oracle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    EXCEPTION
          WHEN PB_DataAlreadyExists
          THEN
             raise_application_error (
                -20001,
                'La culture existe déjà pour l''exploitation spécifiée');
    et en VB:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                    Try
                        _query.ProcAjoutCulture(
                            CType(item.Cells(0).Controls(0).FindControl("ddlCultureAjout"), DropDownList).SelectedValue,
                            PropIDExploitation,
                            Convert.ToDecimal(CType(item.Cells(1).Controls(0).FindControl("txtRendementAjout"), TextBox).Text),
                            Convert.ToDecimal(CType(item.Cells(2).Controls(0).FindControl("ddlResidusAjout"), DropDownList).SelectedValue),
                            val)
                    Catch ex As Oracle.DataAccess.Client.OracleException
                        lblMsg.Text = ex.Message
                    End Try
    Voilà, je ne sais pas s'il y a une autre manière de faire, je laisse une fois le post ouvert
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  3. #3
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Je ne sais pas si c'est possible avec dbms_output.put_line ... Ici on utilise RAISE_APPLICATION_ERROR(idException,text) qui est catché très facilement avec System.Exception (et OracleClient.OracleException peut-être aussi ...)

    EDIT: Catché par OleDbException si tu utilises l'OleDB et OracleException si tu utilises l'OracleClient. (Mais vu qu'ils héritent de System.Exception, tu catcheras aussi)


    RE-EDIT: Bon ba grilled par l'auteur.
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  4. #4
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Points : 12 462
    Points
    12 462
    Par défaut
    Citation Envoyé par _Ez3kiel Voir le message
    RE-EDIT: Bon ba grilled par l'auteur.


    Oui effectivement, Oracle.DataAccess.Client.OracleException il n'aime pas trop, il trouve des ambiguïtés mais ça passe nickel avec System.Exception
    quand même d'avoir fait l'effort
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

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

Discussions similaires

  1. [Oracle] Récupérer une erreur Oracle en PHP
    Par valkiki dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 20/04/2009, 17h07
  2. Réponses: 8
    Dernier message: 29/05/2008, 15h04
  3. Réponses: 2
    Dernier message: 13/05/2008, 17h19
  4. Récupérer une exception dans une page d'erreur
    Par crawling5 dans le forum JSF
    Réponses: 3
    Dernier message: 15/11/2007, 08h46
  5. [WinDev 7.5] Récupérer une exception
    Par sylsau dans le forum WinDev
    Réponses: 1
    Dernier message: 29/12/2006, 18h01

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