A exception diz:
“ResultSet was set to forward only”
Então não consigo mais navegar pelos registros usando resultSet.next()
Mas onde foi que o ResultSet foi setado para “forward only”? E como resolver isso?
O método para a sql:
public void pesquisar() {
try {
statement = conexao.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
resultSet = statement.executeQuery(selectSQL);
if(resultSet.next()) {
String nomeProcurado = JOptionPane.showInputDialog(null, "Digite o nome do contato que deseja localizar:", "Mensagem.", JOptionPane.QUESTION_MESSAGE).toUpperCase();
if(nomeProcurado.equals(""))
JOptionPane.showMessageDialog(null, "Digite algum nome!", "Mensagem.", JOptionPane.ERROR_MESSAGE);
else {
if(pesquisa.equals("PESQUISA EXATA")) {
preparedStatement = conexao.prepareStatement(pesquisaExataSQL);
preparedStatement.setString(1, nomeProcurado);
resultSet = preparedStatement.executeQuery();
if(resultSet.next()) // Conseguiu localizar. Mover para esse registro.
preencherCampos(resultSet);
else
JOptionPane.showMessageDialog(null, "Contato inexistente! Verifique se você digitou o nome completo corretamente.", "Mensagem.", JOptionPane.INFORMATION_MESSAGE);
} // fim if pesquisa exata.
} // fim if(resultSet.next())
else { // else if resultSet.next() == false
JOptionPane.showMessageDialog(null, "Não há contatos cadastrados na agenda!", "Mensagem.", JOptionPane.ERROR_MESSAGE);
}
} // fim try
catch(SQLException sqle) {
System.out.println(sqle);
}
}
Então, a pesquisa é realizada com sucesso e o método preencherCampos() é chamado, passando para ele o ResultSet com o registro encontrado. Mas onde foi que eu setei esse ResultSet para “forward only”?
O método para preencher os campos que recebe o ResultSet como parâmetro:
private void preencherCampos(ResultSet rs) {
try {
nomeText.setText(rs.getString("nome"));
telConText.setText(rs.getString("telefone"));
}
catch(SQLException sqle) {
System.out.println(sqle);
}
}
E então? Onde foi que o ResultSet was set to forward only?
A navegação entre os registros ocorre sem problema, até o momento em que alguma pesquisa (como a do exemplo acima) é realizada! Como corrigir isso?
Obs: Seria possível aumentar o espaço horizontal para o código postado aqui no site? O código fica todo quebrado…