Fórum Erro ResultSet #500838

11/11/2014

0

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

Responder

Post mais votado

11/11/2014

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

Ronaldo Lanhellas

Ronaldo Lanhellas
Responder

Gostei + 1

Mais Posts

11/11/2014

Paulo Henrique

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);
        }
    }
Responder

Gostei + 0

11/11/2014

Ronaldo Lanhellas

Tenta retirar os parâmetros de dentro do método createStatement()
Responder

Gostei + 0

11/11/2014

Paulo Henrique

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
Responder

Gostei + 0

11/11/2014

Ronaldo Lanhellas

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"));
}


Responder

Gostei + 0

11/11/2014

Paulo Henrique

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();
        }
    }
Responder

Gostei + 0

11/11/2014

Ronaldo Lanhellas

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.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar