Erreur ODBC en java

aaaaaaaaaaaaaaa -  
 francis -
Bonjour,
lors de l'éxeution du programme j'ai eu l'erreur :" ResultSet is closed "
et j'ai pas trouvé la solution
pouvez vous m'aider en mdisant les types d'erreur qui géner ce message
Configuration: Windows XP
Firefox 3.0.11

9 réponses

  1. francis
     
    Salut,
    ça veut dire que ta fermé ton resultset avec la fin des traitements...
    exemple de code qui marche :

    String requete = "Select * from "+$CLIENT+" order by client;";
    Connection c = getConnection();
    Statement stmt = c.createStatement();
    ResultSet rs = stmt.executeQuery(requete);
    while(rs.next()) {
    String cl = rs.getString("client");
    String adr = rs.getString("adresse");
    }
    rs.close();
    stmt.close();
    closeConnection(c);
    }
    catch (SQLException e){
    System.out.println("Ici");
    System.out.println(e);
    }
    0
  2. aaaaaaaaaaaaaaa
     
    jé tt fé , mé toujours la mém erreur
    voici la partie de géstion de BD dans ma classe, si tu peu mcorrigé jtenseré reconnaison:

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    String url="jdbc:odbc:Techno";
    Connection conn = DriverManager.getConnection(url,"","");
    Statement stat = conn.createStatement();
    ResultSet result= stat.executeQuery("select Nom from Emplacement where Nom='"+d+"'");
    if(!result.next()){
    JOptionPane.showMessageDialog(null, "Emplacement non existant!","",JOptionPane.WARNING_MESSAGE);
    }
    else{
    ResultSet r= stat.executeQuery("select * from Emplacement ");
    while(r.next()){
    ResultSet rest= stat.executeQuery("select user from e"+r.getString(2)+" where id_prod='"+c+"'");
    if(rest.next()){
    JOptionPane.showMessageDialog(null, "Cet identifiant existe déjà, veuillez le changer","",JOptionPane.WARNING_MESSAGE);
    }
    rest.close();
    }
    stat.execute("insert into e"+d+" values ('"+c+"','"+b+"','"+a+"')");
    JOptionPane.showMessageDialog(null, "Ajout réussit!","",JOptionPane.WARNING_MESSAGE);
    dispose();
    new Menu().setVisible(true);
    r.close();

    }
    result.close();
    stat.close();
    conn.close();
    }
    0
  3. francis
     
    Ca te met l'erreur à quelle ligne ?
    0
  4. francis
     
    La doc java dit ça a propos de l'interface Statement :

    By default, only one ResultSet object per Statement object can be open at the same time. Therefore, if the reading of one ResultSet object is interleaved with the reading of another, each must have been generated by different Statement objects. All execution methods in the Statement interface implicitly close a statment's current ResultSet object if an open one exists.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. aa
     
    donc jpeu pa ouvrir lé 3 resulset en mém templs ?????
    0
  7. francis
     
    Ben visiblement il te faut un object statement par resultset.
    Essaie, tu verras bien !
    0
  8. aa
     
    jé pa bien compri ske tu ma demandé de fér, peu tu me donné un exemple
    é merci
    0
  9. francis
     
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    String url="jdbc:odbc:Techno";
    Connection conn = DriverManager.getConnection(url,"","");
    Statement stat = conn.createStatement();
    ResultSet result= stat.executeQuery("select Nom from Emplacement where Nom='"+d+"'");
    if(!result.next()){
    JOptionPane.showMessageDialog(null, "Emplacement non existant!","",JOptionPane.WARNING_MESSAGE);
    }
    else{
    Statement stat2 = conn.createStatement();
    ResultSet r= stat2.executeQuery("select * from Emplacement ");
    while(r.next()){
    Statement stat3 = conn.createStatement();
    ResultSet rest= stat3.executeQuery("select user from e"+r.getString(2)+" where id_prod='"+c+"'");
    if(rest.next()){
    JOptionPane.showMessageDialog(null, "Cet identifiant existe déjà, veuillez le changer","",JOptionPane.WARNING_MESSAGE);
    }
    rest.close();
    stat3.close();
    }
    stat.execute("insert into e"+d+" values ('"+c+"','"+b+"','"+a+"')");
    JOptionPane.showMessageDialog(null, "Ajout réussit!","",JOptionPane.WARNING_MESSAGE);
    dispose();
    new Menu().setVisible(true);
    r.close();
    stat2.close();
    }
    result.close();
    stat.close();
    conn.close();
    0