Alguem poderia me explicar porque uma mesma instrução funciona em uma situação em não em outra?? Dêem uma olhada no código abaixo:
O primeito rs.getInt(4) não funciona enquanto que o segundo funciona corretamente. Será que pode ser o tipo de ResultSet? Somente leitura ou alguma coisa desse tipo?
import java.sql.*;
public class ConnectEmpregos {
public static void main(String args[]) {
int i;
boolean verifica = false;
ConnectSql cs = new ConnectSql();
try {
ResultSet rs = cs.sqlConsulta();
while (rs.next()) {
i = rs.getInt(4);
if (i > 0) {
System.out.println(rs.getInt(4));
}
}
} catch (SQLException e){
System.out.println(e);
}
verifica = cs.DesconnectSql();
if (verifica) {
System.out.println("Deu certo");
}
}
}
Qual seria esse segundo? o seu codigo esta com uma logica confusa…mas explica ai melhor que tentarei te ajudar.
Falow
como que o primeiro nao funciona, se voce chega a ver o resultado do segundo e ele depende do IF baseado no primeiro?
nao etnendi
parece que esta funcionando
O que eu acabei de perceber é que não posso usar o método rs.getXXX() mais que uma vez em um mesmo módulo. Se vocês observarem no código de exemplo eu tento capturar duas vezes o mesmo campo do ResultSet; se eu deixar apenas uma vez ele funciona o problema é que com isto eu não posso capturar os outros campos do ResultSet.
Paulo
Eu só consigo ver o resultado do segundo se eu deixar o primeiro como comentário.
Ao inves de fazer
i = rs.getInt(4);
if (i > 0) {
System.out.println(rs.getInt(4));
simplesmente faca
i = rs.getInt(4);
if (i > 0) {
System.out.println(i);
depois, voce pode sim chamar o meto getXXX varias vezes seguidas que voce vai sempre pegar o mesmo valor. O valor so se altera quando voce chamar o metodo next() do ResultSet.
Rafael
Rafael
Você tem toda razão e o seu método funciona, porém eu percebi que mesmo dentro de um registro o cursor não aceita voltar; por exemplo se eu chamar o método rs.getInt(2) eu não poderei mais chamar o método rs.getString(1) porque será gerado um SQLException.
Seguindo sua dica estou fazendo o seguinte:
while (rs.next()) {
String nome = getString(1);
int id = getInt(2);
…
…
}
Falou.
Roberto