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

JDBC Java Discussion :

[PostgreSQL] Gestion des erreurs


Sujet :

JDBC Java

  1. #1
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 141
    Points : 128
    Points
    128
    Par défaut [PostgreSQL] Gestion des erreurs
    Bonjour,

    Voila je fais un traitement comme cela afin de supprimer un tuple d'un ResulSet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     try {
                String ques = "Select * From Type WHERE numType='2' For Update NOWAIT";
                stmt.executeQuery(ques);
                rs.deleteRow();
                con.commit();
     
                return true;
            } catch (SQLException ex) {
                System.out.println("erreur->"+ex.getErrorCode());
                System.out.println("message->"+ex.getMessage()+"\n");
            }
    Mon problème est que "ex.getErrorCode() " me retourne toujours "0" alors que l'exception est bien levé pour 2 cas différents et identifié grace au getMessage() :

    erreur->0
    message->ERROR: could not obtain lock on row in relation "type"
    et

    erreur->0
    message->ERROR: update or delete on "type" violates foreign key constraint "fknumtypecustomer" on "customer"
    Détail : Key (numtype)=(2) is still referenced from table "customer".
    Si quelqu'un a une idée afin d'identifier l'erreur exact je serais fortement interessé ! Merci d'avance

  2. #2
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonjour,

    Ton 2nd msg est assez clair. Je penses que dans ta table ''Customer'' tu as 1 FK qui fait réference à la PK de ta table ''Type''.
    Sans 'DELETE CASCADE' sur la contrainte tu ne pourras supprimer le tuple de 'Type' avec numType = 2 que si tu ''deletes'' auparavant ts les tuples ds 'Customer' qui ont 1 numType = 2.

  3. #3
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 141
    Points : 128
    Points
    128
    Par défaut
    Y'a aucun problème sur la nature des messages, je sais pourquoi ils sont déclenché mais je voudrais renvoyer a l'utilisateur un message explicite mais dans les 2 cas le
    me renvoie 0 ! Alors que les 2 erreurs sont bien différentes, j'aimerais simplement savoir comment récuperer le type de l'erreur.

    Je précise que les 2 erreurs proviennent de 2 cas différents et ne se déclenchent donc pas au meme moment.

  4. #4
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Re,

    Dsl, je n'avais pas compris ta question
    La valeur du sqlcode n'est pas standardisée. Elle dépend du fournisseur de la base de données.
    Manifestement PostGres à choisi de le laisser à 0 (au moins ds ce cas). Essaies avec sqlstate tu auras peut-être plus de chance.

  5. #5
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    141
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 141
    Points : 128
    Points
    128
    Par défaut
    Merci beaucoup avec SQLState cela fonctionne et me il me renvoie bien un code différent pour les 2 erreurs ! La question que je me pose alors est : Ce code renvoyé n'est il pas amené a changer dans une future version de postgres ?

    En tout cas merci TheLeadingEdge pour l'instant ca règle mon problème !

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

Discussions similaires

  1. [FB] Gestion des erreurs et application francophone
    Par Benjamin GAGNEUX dans le forum Installation
    Réponses: 10
    Dernier message: 20/05/2006, 14h54
  2. [struts][Datasource]Gestion des erreurs
    Par GreenJay dans le forum Struts 1
    Réponses: 8
    Dernier message: 15/09/2004, 16h51
  3. [VB6] Gestion des erreurs dans une dll
    Par zimba-tm dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 02/08/2004, 11h20
  4. [XSLT]Est ce qu'il y'a la gestion des erreur en xslt ?
    Par miloud dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 04/02/2004, 17h19
  5. [LG]gestion des erreurs
    Par frontin dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2003, 22h41

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