Erro sql

Gente, estou tentando fazer duas consultas mais ou menos “simultâneas” numa mesma conexão, já criei statements diferentes e ele continua dando o mesmo erro de que o “ResultSet” não está corretamente posicionado, já conferi que todas as conexões/statamentes tbm estão sendo fechadas corretamente…

o que mais pode ser ?

 [code]   
    Connection con;
    Statement stmt, stmt2;
    String query = "SELECT * FROM banco offset 10 limit 10"  ;
    
    
    try {
        Class.forName("org.postgresql.Driver");
        
    } catch(java.lang.ClassNotFoundException e) {
        System.err.print("ClassNotFoundException: ");
        System.err.println(e.getMessage());
    }
    
    try {
        
       
        con = DriverManager.getConnection("jdbc:postgresql://localhost:5432/"+banco,usuario,senha);
        
                
        stmt = con.createStatement();
        
        
        ResultSet rs = stmt.executeQuery(query);
        
        
        
       
   ResultSetMetaData rsmd = rs.getMetaData();  
   int numColumns = rsmd.getColumnCount();  
 
   String[] lista_atributos= new String[numColumns];
   
   
  
  for (int i=1; i<numColumns; i++) {  
       String columnName = rsmd.getColumnName(i);  
       lista_atributos[i]=columnName;
   
          }

   int cont_pac=0;
        
        while (rs.next()) {
            
       Paciente pac= new Paciente();
       
            String hospital = rs.getString("hospital");
            pac.setHospital(hospital);
            String entrada= rs.getString("data_inter");
            String saida= rs.getString("data_saida");
            pac.setEntrada(entrada);
            pac.setSaida(saida);
            
            String tipo=rs.getString("cat_int");
            String query2="SELECT tipo FROM categoria WHERE codigo=\'"+tipo+"\'";
        
            stmt2 = con.createStatement();
            ResultSet rs2 = stmt2.executeQuery(query2);
            
            String tipo1=rs2.getString("tipo");
            
            if(tipo1=="tipo1"){
            pac.setTipo(1);
            
            }else if(tipo1=="tipo2"){
            
            pac.setTipo(2);
            
            }
            
            rs2.close();
            stmt2.close();                 
           
            
       
        }
        
        rs.close();
        
        stmt.close();
        con.close();
        
        
    } 
   
   
   catch(SQLException ex) {
        System.err.println("SQLException: " + ex.getMessage());
    }     

[/code]

Olá Starlya,

Creio que o erro aponta para a linha onde faz

String tipo1=rs2.getString("tipo"); 

certo? Se sim, chame rs2.next() antes.

E alguns apontamentos:

  1. Ao postar código, coloque-o entre as tags [ code]seucódigo[ /code], assim ele fica identado.
  2. Ao ocorrer um erro em seu código, sempre poste junto o stack trace da exceção, o que me leva ao próximo ponto…
  3. Nunca nunca faça isso
System.err.println("SQLException: " + ex.getMessage());

Normalmente o que é impresso não ajuda tanto quanto

ex.printStackTrace();

Teste você mesma e veja a diferença.

EDIT

ah jah entendi…

vou tentar aqui…

muito obrigada pelas dicas …

EDIT 2: funcionou direitinho, muito obrigada…