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 :

2 requêtes successives mais une seule aboutit!


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 71
    Points : 45
    Points
    45
    Par défaut 2 requêtes successives mais une seule aboutit!
    Salut tout le monde,
    je suis entrain de programmer une application java qui opère sur une BD access
    j'ai une méthode pour la mise à jour des champs et une autre pour la suppression

    les 2 méthode marchent bien séparément

    mais quand j'appelle une méthode après l'autre dans le code d'un bouton
    seule la mise à jour aboutit

    même si je fait un commit() et je ferme la connexion au sein de chaque méthode

    et sachant que j'ai placé des boites de message dans la méthode de suppression et ça montre qu'on entre dans la méthode et que chaque ligne est bien exécutée

    est ce que vous n'auriez pas une idée pourquoi seule la méthode de mise à jour aboutit et non celle de la suppression?

    j'espère que je n'ai pas commit des erreurs bêtes, en tt cas voici les codes:


    le code de la suppression :
    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
    17
    18
    19
     
    public static void supprimerActifs(int mat,int rayon,int niveau,int boitier){
         try{
            Connection cnx=outils.connex_emplacements(); 
            PreparedStatement stm=cnx.prepareStatement("DELETE FROM actifs where matricule=? and rayon=? and niveau=? and boitier=?");
            stm.setInt(1, mat);
            stm.setInt(2,rayon);
            stm.setInt(3,niveau);
            stm.setInt(4,boitier);
               cnx.commit();
            stm.execute();
            cnx.close();
     
            }catch(SQLException sqlex){
                sqlex.printStackTrace();
            }
     
     
        }
    et voici la méthode de mise à jour:

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    public static void deplacerActifs(int mat,String nom,String prenom,int rayon,int niveau,int boitier){
           try{
            ResultSet r=Recherche.rechercherActif(mat);
     
            r.last();
            if(r.getRow()==0){    
                Ajouter.ajouterActif(mat, rayon, niveau, boitier);
                r.close();
            }else{
                int l=JOptionPane.showConfirmDialog(null,"Le dossier éxiste déja dans les rayon des actifs voulez vous mettre à jour ces coordonnées?","Mise à jour?", JOptionPane.YES_NO_OPTION);
                if(l==JOptionPane.YES_OPTION){
                try{
                     r.close();
            Connection connex=outils.connex_emplacements();
            PreparedStatement stm= connex.prepareStatement("UPDATE actifs set rayon=?,niveau=?,boitier=? where matricule=?");
            stm.setInt(4,mat);
            stm.setInt(1,rayon);
            stm.setInt(2,niveau);
            stm.setInt(3,boitier);
            stm.execute();
             connex.commit();
            stm.close();
            connex.close();
            }catch(SQLException sqle){
                System.out.println("Error code: "+sqle.getErrorCode()+": "+sqle.getMessage());
            }catch(Exception ex){
                System.out.println("Error"+ex.getMessage());
                ex.printStackTrace();
            }
     
     
            }
            }
           }
           catch(SQLException sqlex){
               sqlex.printStackTrace();
           }catch(Exception ex){
               ex.printStackTrace();
           }
     
     
        }
    j'attends votre aide
    merci

  2. #2
    Membre averti Avatar de Rei Angelus
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2006
    Messages
    292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2006
    Messages : 292
    Points : 356
    Points
    356
    Par défaut
    1ère remarque :
    Dans ton code de suppression le commit est avant l'execute !

  3. #3
    Membre chevronné

    Homme Profil pro
    Ingénieur R&D en informatique
    Inscrit en
    Août 2011
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur R&D en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2011
    Messages : 313
    Points : 1 855
    Points
    1 855
    Par défaut
    Bonjour,

    L'intervenant précédent a raison. Mais aussi pourquoi fais tu des "commit". C'est utilisé que quand tu fais des transactions. Sinon la connexion est en mode autocommit par défaut donc sous entendu.

    Salut.

Discussions similaires

  1. Réponses: 11
    Dernier message: 22/04/2008, 15h32
  2. [WPF-Blend] Plusieurs objets mais une seule animation
    Par Tuizi dans le forum Framework .NET
    Réponses: 12
    Dernier message: 11/12/2007, 17h10
  3. 3 tables liées mais une seule ligne de retour ?
    Par seb_perl dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/01/2007, 12h20
  4. Problème de sous requête (retour d'une seule valeur)
    Par ero-sennin dans le forum Requêtes
    Réponses: 1
    Dernier message: 14/06/2006, 11h12

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