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 :

Déconnexion / reconnexion


Sujet :

JDBC Java

  1. #21
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 55
    Points
    55
    Par défaut
    Bah au risque de me répéter le seul message d'erreur que ma console me retourne est bien le message d'erreur suivant:

    'No operations allowed after connection closed.'

    Je n'est absolument rien d'autre.

  2. #22
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    La console n'affiche que ce que tu lui demande d'afficher. Si tu n'as rien d'autre, c'est que tu n'affiche pas les stacktraces de tes exception. Corrige donc ton code pour les afficher qu'on sache exactement ce qui se passe!

  3. #23
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 55
    Points
    55
    Par défaut
    Toute mes requetes sql sont entourées par les balises suivante :

    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
     
    try{
    Statement st = connect.createStatement();
     
    //query
    ResultSet queryselectnamerelease = st.executeQuery("SELECT `Name` FROM `Group_Release`");
    while (queryselectnamerelease.next()){
    String namerelease = queryselectnamerelease.getString("Name");
    comboModelgrouprelease.addElement(namerelease);
    }
     
    catch (SQLException ex)
    {
    System.err.println(ex.getMessage());
    }
    donc en théorie il m'affiche toute la stacktraces, a moins que mon code soit incorrect ce qui est très fortement possible vu mon niveau xD

  4. #24
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Ou pas, la méthode getMessage de la classe Exception ne retourne pas la stacktrace.

    Pour afficher la stacktrace tu dois faire un dans ton catch en lieu et place du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.err.println(ex.getMessage());
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  5. #25
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 55
    Points
    55
    Par défaut
    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
    44
    45
    46
    47
    com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after connection closed.
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
        at com.mysql.jdbc.Util.getInstance(Util.java:384)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:929)
        at com.mysql.jdbc.ConnectionImpl.throwConnectionClosedException(ConnectionImpl.java:1193)
        at com.mysql.jdbc.ConnectionImpl.checkClosed(ConnectionImpl.java:1180)
        at com.mysql.jdbc.ConnectionImpl.createStatement(ConnectionImpl.java:2427)
        at com.mysql.jdbc.ConnectionImpl.createStatement(ConnectionImpl.java:2409)
        at consult.projecttab$BoutongroupreleaseListener.actionPerformed(projecttab.java:166)
        at javax.swing.JComboBox.fireActionEvent(Unknown Source)
        at javax.swing.JComboBox.contentsChanged(Unknown Source)
        at javax.swing.JComboBox.intervalRemoved(Unknown Source)
        at javax.swing.AbstractListModel.fireIntervalRemoved(Unknown Source)
        at javax.swing.DefaultComboBoxModel.removeAllElements(Unknown Source)
        at Reporting.Fenetrechoix$BoutonconsultListener.actionPerformed(Fenetrechoix.java:300)
        at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
        at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
        at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
        at java.awt.Component.processMouseEvent(Unknown Source)
        at javax.swing.JComponent.processMouseEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

  6. #26
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    Tu peux nous donner le code de

    at Reporting.Fenetrechoix$BoutonconsultListener.actionPerformed(Fenetrechoix.java:300)

    Ainsi que celui de
    at consult.projecttab$BoutongroupreleaseListener.actionPerformed(projecttab.java:166)
    Avec, de préférence, la numérotation des lignes qu'on s'y retrouve.

  7. #27
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 55
    Points
    55
    Par défaut
    Voici les deux partie de code que vous m'avez demandé.

    Alors oui je sais les règle de codage sont pas respecté en même temps quand on a pas de prof pour vous dire se qu'il faut faire et que l'on apprend sur le tas bah on fait rapidement du n'importe quoi et faute de temps j'ai pas repris certaine partie de mon code je m'en excuse donc ^^.

    Voici le code de buttonconsultlistener :

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
     
    291 class BoutonconsultListener  implements ActionListener{
    292 public void actionPerformed(ActionEvent e) {
    293
    294 String idgrouprelease = null;            
    295 String idsection= null;
    296 List<String> listidrelease =new ArrayList<String>();
    297 int totnbline = 0;
    298 int totnbrequirements = 0;
    299 int totnbtest = 0;
    300 comboModelgrouprelease.removeAllElements();
    301 comboModelsection.removeAllElements();
    302            
    303 //start SQL
    304 try{
    305 Statement st = connect.createStatement();
    306 //query
    307                
    308 //recovers release name for complete combo box
    309 ResultSet queryselectnamerelease = st.executeQuery("SELECT `Name` FROM `Group_Release`");
    310 while (queryselectnamerelease.next())
    311 {
    312 String namerelease = queryselectnamerelease.getString("Name");
    313 comboModelgrouprelease.addElement(namerelease);
    314 }
    315               
    316 //recovers section nale for complet combo box
    317 ResultSet queryselectnamesection = st.executeQuery("SELECT `Name` FROM `Section`");
    318 while (queryselectnamesection.next())
    319 {
    320 String namesection = queryselectnamesection.getString("Name");
    321 comboModelsection.addElement(namesection);
    322 }
    323                
    324 //recovers group release ID according group release selected in combo obx
    325 ResultSet queryselectidgrouprelease = st.executeQuery("SELECT `id` FROM `Group_Release` WHERE `Name` =  '"+comboModelgrouprelease.getElementAt(0)+"'");
    326 while (queryselectidgrouprelease.next())
    327 {
    328 idgrouprelease = queryselectidgrouprelease.getString("id");
    329 }
    330                
    331 //recovers section ID according section selected in combo box
    332 ResultSet queryselectidsection = st.executeQuery("SELECT `id` FROM `Section` WHERE `Name` =  '"+comboModelsection.getElementAt(0)+"'");
    333 while (queryselectidsection.next())
    334 {
    335 idsection = queryselectidsection.getString("id");
    336 }
    337              
    338 //recovers release ID according group release ID
    339 ResultSet queryselectidrelease = st.executeQuery("SELECT `id` FROM `Release` WHERE `id_group_release` =  '"+idgrouprelease+"'");
    340 while (queryselectidrelease.next())
    341 {
    342  listidrelease.add(queryselectidrelease.getString("id"));
    343 }
    344
    345 int sizelistidrelease = listidrelease.size();
    346 boolean nblineisEmpty = true;
    347 boolean nbrequirementsisEmpty = true;
    348 boolean nbtestisEmpty = true;
    349 for (int h = 0;h<sizelistidrelease;h++)
    350 {    
    351  String idrelease = (String) listidrelease.get(h);
    352                
    353  //recovers nblines according release ID and section ID
    354  ResultSet recupnbline = st.executeQuery("SELECT `nblines` FROM `Nblines` WHERE `id_release` = "+idrelease+" and `id_section` = "+idsection+" ");
    355                
    356 while (recupnbline.next())
    357 {
    358 nblineisEmpty = false;                 
    359 stringnbline = recupnbline.getString("nblines");
    360 int intnbline = Integer.valueOf(stringnbline).intValue();
    361 totnbline = totnbline + intnbline;
    362 stringnbline = String.valueOf(totnbline);                    
    363 }
    364 if(nblineisEmpty){
    365 stringnbline ="No value";
    366 }     
    367                
    368 //recovers nbrequirements according release ID and section ID
    369 ResultSet recupnbrequirements = st.executeQuery("SELECT `nbrequirements` FROM `Nblines` WHERE `id_release` = '"+idrelease+"' and `id_section` = '"+idsection+"'");
    370                
    371 while (recupnbrequirements.next())
    372 {
    373 nbrequirementsisEmpty = false;
    374 stringnbrequirements =   recupnbrequirements.getString("nbrequirements");                   
    375 int intnbrequirements = Integer.valueOf(stringnbrequirements).intValue();                    
    376 totnbrequirements= totnbrequirements + intnbrequirements;                    
    377 stringnbrequirements = String.valueOf(totnbrequirements); 
    378 }
    379 if(nbrequirementsisEmpty){
    380 stringnbrequirements = ("No value");
    381 }    
    382                
    383 //recovers nbtest according release ID and section ID
    384 ResultSet recupnbtest = st.executeQuery("SELECT `nbtest` FROM `Nblines` WHERE `id_release` = '"+idrelease+"' and `id_section` = '"+idsection+"'");
    385                
    386 while (recupnbtest.next())
    387 {
    388 nbtestisEmpty = false;
    389 stringnbtest = recupnbtest.getString("nbtest");
    390 int intnbtest = Integer.valueOf(stringnbtest).intValue();
    391 totnbtest= totnbtest + intnbtest;
    392 stringnbtest = String.valueOf(totnbtest);    
    393 }
    394 if(nbtestisEmpty){
    395 stringnbtest = ("No value");
    396 }    
    397 }
    398 }
    399 catch (SQLException ex)
    400 {
    401 ex.printStackTrace();
    402 }
    403 //end SQL
    404            
    405 Elementselectgrouprelease = (String) comboModelgrouprelease.getElementAt(0);
    406 Elementselectsection = (String) comboModelsection.getElementAt(0);            
    407 comboModelsection.setSelectedItem(comboModelsection.getElementAt(0));  408 comboModelgrouprelease.setSelectedItem(comboModelgrouprelease.getElementAt(0));
    409
    410 new choosevue(connect);
    411 Frame.setVisible(false);
    412                                
    413 }         
    414 }

    Et voici le code de boutongroupreleaselistener:

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     
    154 class BoutongroupreleaseListener  implements ActionListener{
    155 public void actionPerformed(ActionEvent e) {
    156     
    157 String idgrouprelease = null;            
    158 List<String> listidrelease =new ArrayList<String>();
    159 int totnbline = 0;
    160 int totnbrequirements = 0;
    161 int totnbtest = 0;
    162 Elementselectgrouprelease = (String) 
    163 ComboBoxgrouprelease.getSelectedItem();
    164            
    165 //start SQL
    166 try{
    167 Statement st = connect.createStatement();
    168 //query
    169
    170 //recovers group release ID according group release selected in combo obx
    171 ResultSet queryselectidgrouprelease = st.executeQuery("SELECT `id` FROM `Group_Release` WHERE `Name` =  '"+Elementselectgrouprelease+"'");
    172 while (queryselectidgrouprelease.next())
    173 {
    174 idgrouprelease = queryselectidgrouprelease.getString("id");
    175 }
    176                
    177 //recovers release ID according group release ID
    178 ResultSet queryselectidrelease = st.executeQuery("SELECT `id` FROM `Release` WHERE `id_group_release` =  '"+idgrouprelease+"'");
    179 while (queryselectidrelease.next())
    180 {
    181 listidrelease.add(queryselectidrelease.getString("id"));
    182 }
    183
    184 int sizelistidrelease = listidrelease.size();
    185 boolean nblineisEmpty = true;
    186 boolean nbrequirementsisEmpty = true;
    187 boolean nbtestisEmpty = true;
    188 for (int g = 0;g<sizelistidrelease;g++)
    189 {    
    190 String idrelease = (String) listidrelease.get(g);
    191                
    192 //recovers nblines according release ID and section ID
    193 ResultSet recupnbline = st.executeQuery("SELECT `nblines` FROM `Nblines` WHERE `id_release` = "+idrelease+" ");
    194                
    195 while (recupnbline.next())
    196 {
    197 nblineisEmpty = false;     
    198 stringnbline = recupnbline.getString("nblines");
    199 int intnbline = Integer.valueOf(stringnbline).intValue();
    200 totnbline = totnbline + intnbline;
    201 stringnbline = String.valueOf(totnbline);
    202 Labelnumberofnbline.setText(stringnbline);
    203 }
    204 if(nblineisEmpty){                    
    205 stringnbline ="No value";
    206 Labelnumberofnbline.setText(stringnbline);
    207 }     
    208                
    209 //recovers nbrequirements according release ID and section ID
    210 ResultSet recupnbrequirements = st.executeQuery("" +
                            "SELECT `nbrequirements` FROM `Nblines` WHERE `id_release` = '"+idrelease+"'");
    211                
    212 while (recupnbrequirements.next())
    213 {
    214 nbrequirementsisEmpty = false;
    215 stringnbrequirements = recupnbrequirements.getString("nbrequirements");                   
    216 int intnbrequirements = Integer.valueOf(stringnbrequirements).intValue();                    
    217 totnbrequirements= totnbrequirements + intnbrequirements;                    
    218 stringnbrequirements = String.valueOf(totnbrequirements);
    219 Labelnumberofrequirements.setText(stringnbrequirements);
    220 }
    221 if(nbrequirementsisEmpty){
    222 stringnbrequirements = ("No value");
    223 Labelnumberofrequirements.setText(stringnbrequirements);
    224 }    
    225                
    226 //recovers nbtest according release ID and section ID
    227 ResultSet recupnbtest = st.executeQuery("" +
                            "SELECT `nbtest` FROM `Nblines` WHERE `id_release` = '"+idrelease+"'");
    228                
    229 while (recupnbtest.next())
    230 {
    231 nbtestisEmpty = false;
    232 stringnbtest = recupnbtest.getString("nbtest");
    233 int intnbtest = Integer.valueOf(stringnbtest).intValue();
    234 totnbtest= totnbtest + intnbtest;
    235 stringnbtest = String.valueOf(totnbtest);    
    236 Labelnumberoftest.setText(stringnbtest);
    237 }
    238 if(nbtestisEmpty){
    239 stringnbtest = ("No value");
    240 Labelnumberoftest.setText(stringnbtest);
    241 }    
    242 }
    243                    
    244 }
    245 catch (SQLException ex)
    246 {
    247 ex.printStackTrace();
    248 }
    249 //end SQL
    250 }
    251 }

    ps : j'entend d'ici les ' HOUUUU!!!! TON CODE IL EST POURRI' :p

  8. #28
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    pour être clair, au niveau de l'interface, lors du logout:

    1) tu supprime de l'écran toutes les fenetres
    2) tu affiche une fenetre de logging
    3) tu recréer de nouvelle fenetres, fenetres auxquelles tu passe le nouvel objet connect

    C'est bien ça?

    Parce que, a voir ton code, je dirait que ton listener (BoutongroupreleaseListener) quand il fait Statement st = connect.createStatement(); il continue d'utiliser l'ancien. Donc je me demande

    -> d'ou viens ce "connect"? Comment il est initialisé, comment tu t'assure qu'il est bien remplacé par le nouveau lorsque tu fais une nouvelle connection.

  9. #29
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 55
    Points
    55
    Par défaut
    Je pense avoir compris mon erreur mais je ne suis pas sur donc pour répondre a tes question.

    'Connect' est ma connection a ma BDD que j'initialise a la page de login juste avant d'apeller la page suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Connect maconnection = new Connect(userright, password);
                            connect = maconnection.getConnect();
                            new Fenetrechoix(connect);
                            Frame.setVisible(false);
    Ensuite,et je pense que mon erreur est la: pour les listener de mes boutons j'utilise la synthaxe suivante:

    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
     
    public class projecttab {
     
    private Connection connect; 
     
    public projecttab(Connection connect){
    		super();
    		this.connect=connect;
    		//appel d'un fonction pour dessiner ma fenetre ajouter les composants 
    	}
     
     
    //group release combo box 
        private JComboBox getComboBoxgrouprelease() {
            if (ComboBoxgrouprelease == null) {
                ComboBoxgrouprelease = new JComboBox(comboModelgrouprelease);
                ComboBoxgrouprelease.setBounds(100, 90, 150, 20);
                ComboBoxgrouprelease.addActionListener(new BoutongroupreleaseListener());
            }
        return ComboBoxgrouprelease;
        }
     
     
        //listener group release combo box
        class BoutongroupreleaseListener  implements ActionListener{
            public void actionPerformed(ActionEvent e) {
                 //Actions
    }
    }
    }
    J'ai partagé la connection avec la classe au dessus mais pas avec la class du listener ( je sais pas si je suis clair :s ) du coup le listener ne doit pas changé sa connection lorsque je me déconnecte. Je suis pas trop sur de moi la.

  10. #30
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    il faut que pour chaque nouvelle connection tu aie un nouveau projecttab qui soit instancié. Bref, il faut qu'aucune classe ne garde de référence à l'ancienne connexion.

  11. #31
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 55
    Points
    55
    Par défaut
    Je pense que c'est le cas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public void project()
        {
            panelproject = new JPanel();
            panelproject.setLayout(null);
            new projecttab(connect);
        }
    mais au vu de mon erreur cela ne doit pas être le cas.

  12. #32
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 55
    Points
    55
    Par défaut
    Bonjour,

    Voila alors suite à plusieur test et réécriture / simplification de code je suis arrivé a la conclusion de forcé la réinitialisation de ma variable qui représente ma connection a ma BDD avant de l'instancier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    connect_reporting_config=null;
                                ConnectReportingConfig instance_connect_reporting_config = new ConnectReportingConfig(userright, password);
                                connect_reporting_config = instance_connect_reporting_config.getConnect();
                                new ChooseVue(connect_reporting_config);
                                Frame.setVisible(false);
    Certe c'est moche, mais !! car il y a un mais :p et bien sa marche ^^ enfin plus ou moins. En effet mon programme fonctionne parfaitement ( il ne bloque pas il me retourne bien toute les valeurs de ma base de donnée ) mais le prob persiste en gros sa fonctionne mais il me retourne toujours les même erreur dans la console. Une explication pourquoi la stacktrace me dit que l'opération est invalide car ma connection est fermé alros que sa fonction et que donc ma connection est ouverte?

  13. #33
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    ben lit le stacktrace et en fonction de ça détermine où on continue à utiliser l'ancienne connexion.

  14. #34
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 55
    Points
    55
    Par défaut
    Question toute bête mais lorsque l'on instancie une classe le programme passe forcément pas le constructeur?

  15. #35
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    ben oui, c'est le seul moyen d'avoir une instance.

  16. #36
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 88
    Points : 55
    Points
    55
    Par défaut
    Bonjour,

    Après plusieurs test, j'ai trouvé une solution qui reste moche et qui est contraire a se que tu ma dis mais qui a le mérite de marché.

    En gros je passe ma connection a toute mes classes comme tu m'avait conseiller plutot que faire avec un static) mais pour les classes ou j'en ai besoin je la défini comme static pour que lorsque dans une autre classe je clique sur mon bouton logout je puisse l'initialiser a null.

    c'est moche je sais mais vu que je n'ai pas trouvé d'autre solution bah sa fera comme sa ^^.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Script déconnexion et reconnexion wi-fi automatique
    Par raptack dans le forum Windows
    Réponses: 1
    Dernier message: 06/02/2015, 01h26
  2. Déconnexion réseau
    Par esa dans le forum Web & réseau
    Réponses: 3
    Dernier message: 22/06/2004, 07h55
  3. [Delphi 4] [OPC] [ActiveX] Reconnexion propre à un serveur.
    Par _Marsu_ dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 11/05/2004, 16h00
  4. [Débutant] Problème de déconnexion d'une page JSP
    Par amal9 dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 22/01/2004, 13h40
  5. Déconnexion d'une session Win2k
    Par lamasse dans le forum C++Builder
    Réponses: 3
    Dernier message: 02/10/2003, 08h39

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