? ResultSet?

3 respostas
M

Boa tarde.

Montei uma pagina jsp que exibe o resultado de uma query.
Se o RESULTSET == NULL, é mostrada uma mensagem de erro. Senão, ele exibe o resultado da consulta e também acessa outro método RESULTSET que consulta outra tabela. Tudo dentro do mesmo WHILE.

ResultSet rs = meuBean.localizaRegistros();
   if(!rs.next()) {
       Nenhum registro encontrado
   } else {
        do {
              String cod = rs.getString(1);
              ResultSet rs2 = meuBean.localizaCodigo(cod);
        } while(rs.next());
   }

O problema é que esse segundo RESULTSET está “se perdendo” e é lançado o seguinte erro: NO DATA FOUND. Já testei os métodos separados e estão funcionando bem.

Tem problema usar um RESULTSET dentro de outro RESULTSET???

Até…

3 Respostas

N

não entendi nada…

o q é esse objeto meuBean???

M

“meuBean” é a classe onde guardei todos os métodos relacionados ao Banco de Dados na minha aplicação… taí o código:

public ResultSet localizaRegistros() {
try {
sql = "SELECT * FROM Tabela1";
rs = getStat().executeQuery(sql);
} catch (SQLException e) {
}
return rs;
}
// ------------------------------------------------------
public ResultSet localizaCodigo(String cod) {
try {
sql = "SELECT * FROM Tabela1 WHERE cod='"+cod+"'";
rs = getStat().executeQuery(sql);
} catch (SQLException e) {
}
return rs;
}
N

Pelo que entendi, vc está retornando o mesmo ResultSet na chamada ao localizaCodigo(cod), pois em java a passagem de parâmetros é por referência. Pode ser esse o problema. Tente, fazer o teu beam assim:

public ResultSet localizaRegistros() { 
try { 
sql = "SELECT * FROM Tabela1"; 
ResultSet rs = getStat().executeQuery(sql); 
} catch (SQLException e) { 
} 
return rs; 
} 
------------------------------------------------------ 
public ResultSet localizaCodigo(String cod) { 
try { 
sql = "SELECT * FROM Tabela1 WHERE cod='"+cod+"'"; 
ResultSet rs = getStat().executeQuery(sql); 
} catch (SQLException e) { 
} 
return rs; 
}

Assim vc vai estar usando 2 ResultSet diferentes… mas não tenho muita certeza disso não…

Criado 31 de outubro de 2003
Ultima resposta 31 de out. de 2003
Respostas 3
Participantes 2