“felipelo”:
“jmozer”:
Galera,
Estou com o seguinte problema, recebo o resultado de um “SELECT codigo, nome FROM clientes WHERE codigo=1” em um ResultSet, até ae tudo bem, quando acesso a primeira vez o conetúdo dos campos tudo funciona, algo do tipo “String nome = rs.getString(“nome”);” ou “int codigo = rs.getString(“codigo”);”, porém se eu tenho que acessar novamente os valores do ResultSet, da mesma maneira que funcionou na primeira vez, ou seja, tentar receber os valores da coluna novamente com rs.getString(“nome”) por exemplo, retorna o erro: java.sql.SQLException: No data found
Por que???
OBrigado
Cara, talvez o teu problema seja o seguinte:
tu tem um resultset com um registro somente, correto?
O teu ResultSet vem com um “ponteiro” apontando para uma posição invalida… ou seja, voce precisa dar um rs.next() para que o “ponteiro” aponte para o primeiro registro do teu ResultSet… muito bem… voce faz os gets e tudo funciona blz…
Mas quando voce vai acessar os registros desse ResultSet, voce provavelmente esta dando um rs.next() novamente… e o teu “ponteiro” esta apontando para um proximo registro depois do ultimo… entao…usa um rs.first() toda vez que for acessar o teu ResultSet…
Qualquer coisa… posta o codigo direitinho…
Na verdade apenas dá o problema quando tento acessar 2 vezes o mesmo campo, como no exemplo abaixo, a primeira vez o nome do cliente é mostrado, quando é passado para o proximo comando System.out.println ocorre o erro, mas note que é exatamente o mesmo comando, acessando o mesmo campo que na linha acima estava funcionando do mesmo registro…
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection connection = DriverManager.getConnection("jdbc:odbc:MEUDB","teste","teste");
Statement stmt = connection.createStatement();
ResultSet rsSelect = stmt.executeQuery("SELECT codigo,nome FROM clientes LIMIT 1");
rsSelect.next();
System.out.println("NOMECLI: " + rsSelect.getString("nome"));
System.out.println("NOMECLI: " + rsSelect.getString("nome"));
Ou seja, se o problema fosse com o first() ou next() já não teria funcionando na primeira linha System.out.println, pois se trata do mesmo registro. É impossível que eu seja obrigado a guardar todos os valores dos campos de um registro em variáveis para poder utilizar mais do que uma vez…