Erro ResultSet

Java

11/11/2014

Estou com um problema em um evento de um botão.
Quero que ao clicar nele o registro anterior ao atual no banco de dados seja exibido no FORM, mas ele me gera o seguinte erro: org.postgresql.util.PSQLException: ResultSet não está posicionado corretamente, talvez você precise chamar next.

O meu código é esse abaixo, alguém poderia me ajudar?

try{
            
            conexaoFilmes.executeSQL("SELECT * FROM filmes");
            conexaoFilmes.resultSet.next();
            txt_Codigo.setText(String.valueOf(conexaoFilmes.resultSet.getInt("id_serial")));
            txt_Titulo.setText(conexaoFilmes.resultSet.getString("titulo_filmes"));
            cbx_Genero.setSelectedItem(conexaoFilmes.resultSet.getString("genero_filmes"));
            cbx_FaixaPreco.setSelectedItem(conexaoFilmes.resultSet.getString("faixapreco_filmes"));
 
        }
        catch(Exception e){
            
            e.printStackTrace();
        }
    }
Paulo Henrique

Paulo Henrique

Curtidas 0

Melhor post

Ronaldo Lanhellas

Ronaldo Lanhellas

11/11/2014

Poste o seu método executeSQL, para que eu possa ver como ele funciona.
GOSTEI 1

Mais Respostas

Paulo Henrique

Paulo Henrique

11/11/2014

Olá Ronaldo segue o método.

public void executeSQL(String sql){
        
        try{
            statement = conexao.createStatement(resultSet.TYPE_SCROLL_SENSITIVE, resultSet.CONCUR_READ_ONLY);
            resultSet = statement.executeQuery(sql);
            
        }
        catch(SQLException e){
            
            JOptionPane.showMessageDialog(null, "Erro ao fazer a consulta" + e);
        }
    }
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

11/11/2014

Tenta retirar os parâmetros de dentro do método createStatement()
GOSTEI 0
Paulo Henrique

Paulo Henrique

11/11/2014

Acredito que elas sejam necessários pois eu preciso ter um ResultSet rolável.
Tirando os parâmetros me da erro:

Operação requer um ResultSet rolável, mas este ResultSet é FORWARD_ONLY
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

11/11/2014

Certo, então tente assim:

while (conexaoFilmes.resultSet.next()){
            txt_Codigo.setText(String.valueOf(conexaoFilmes.resultSet.getInt("id_serial")));
            txt_Titulo.setText(conexaoFilmes.resultSet.getString("titulo_filmes"));
            cbx_Genero.setSelectedItem(conexaoFilmes.resultSet.getString("genero_filmes"));
            cbx_FaixaPreco.setSelectedItem(conexaoFilmes.resultSet.getString("faixapreco_filmes"));
}


GOSTEI 0
Paulo Henrique

Paulo Henrique

11/11/2014

Consegui resolver.
Eu estava dando um SELECT * FROM indevido
Da forma abaixou funcionou.
Obrigado.

try{
             
            conexaoFilmes.resultSet.next();
            txt_Codigo.setText(String.valueOf(conexaoFilmes.resultSet.getInt("id_serial")));
            txt_Titulo.setText(conexaoFilmes.resultSet.getString("titulo_filmes"));
            cbx_Genero.setSelectedItem(conexaoFilmes.resultSet.getString("genero_filmes"));
            cbx_FaixaPreco.setSelectedItem(conexaoFilmes.resultSet.getString("faixapreco_filmes"));
  
        }
        catch(Exception e){
             
            e.printStackTrace();
        }
    }
GOSTEI 0
Ronaldo Lanhellas

Ronaldo Lanhellas

11/11/2014

Consegui resolver.
Eu estava dando um SELECT * FROM indevido
Da forma abaixou funcionou.
Obrigado.

try{
             
            conexaoFilmes.resultSet.next();
            txt_Codigo.setText(String.valueOf(conexaoFilmes.resultSet.getInt("id_serial")));
            txt_Titulo.setText(conexaoFilmes.resultSet.getString("titulo_filmes"));
            cbx_Genero.setSelectedItem(conexaoFilmes.resultSet.getString("genero_filmes"));
            cbx_FaixaPreco.setSelectedItem(conexaoFilmes.resultSet.getString("faixapreco_filmes"));
  
        }
        catch(Exception e){
             
            e.printStackTrace();
        }
    }


De nada. Disponha.
GOSTEI 0
POSTAR