Bom, procurei muito a solução desse problema mas não achei nada que resolvesse por isso resolvi criar um topico. E não tenho muita experiencia em java por isso resolvi pedir uma ajuda aqui no forum.
E o seguinte o codigo abaixo, e em vários outros codigos do meu programa está dando o erro "No data is available", eu até entendi que o erro ocorre quando não existe o retorno dos dados de uma query.
Mas no caso abaixo é possivel que "Contas a Pagar" não tenha nenhum dado do usuário cadastrado, ou seja eu quero que quando não houvesse retorno seguisse em frente em vez de gerar uma exceção.
Já tentei criar um IF if(rg==null)...., mas também não deu certo. Estou utilizando o banco de dados H2.
//Excluir dados do usuário em "ContasPagar" e em "ParcelasCR".rg=comandos.executeQuery("SELECT * FROM CONTASPAGAR WHERE CODU='"+codU+"'");while(rg.next()){comandos.executeUpdate("DELETE * FROM PARCELACP WHERE CODCP='"+rg.getString("CODCP")+"'");}comandos.executeUpdate("DELETE * FROM CONTASPAGAR WHERE CODU='"+codU+"'");
Não sei se expliquei bem o meu problema, mas qualquer ajuda é bem vinda
"wbdsjunior" Valeu pela dica, mas o problema continua, logo abaixo está outro codigo que está dando o mesmo erro, o if(rg==null) foi uma dica que vi na internet q também não deu certo, e sem o IF também não dá certo.
Esse codigo está um pouco bagunçado pois eu estava fazendo algumas tentativas em cima dele.
Só pra esclarecer, porque se o banco não voltar nenhum resultado dá exceção?
ResultSetrg2=null;//ResultSetrg3=null;ResultSetrg=comandos.executeQuery("SELECT CODC FROM CATEGORIA WHERE "+"CODU = '"+codU+"'");if(!(rg==null)){
while(rg.next()){
rg2=comandos.executeQuery("SELECT NOMEG FROM GRUPOS WHERE "+"CODC = '"+rg.getString("CODC")+"'"); if(!(rg2==null)){
if(rg2.getString("NOMEG").equals(nomeG))nome++;}
elsereturntrue;}
}
elsereturntrue;
wbdsjunior
pauloaa:
ResultSet rg = comandos.executeQuery("SELECT CODC FROM CATEGORIA WHERE "
+ "CODU = '"+codU+"'");
CODU é uma chave estrangeira (é índice de outra tabela)? qual o tipo de CODU?
verificar se o ResultSet é nulo só é válido se você não atribuir o retorno de Statement.executeQuery a ele ou se este método lançar uma exceção.
P
pauloaa
wbdsjunior
CODU é uma chave estrangeira (é índice de outra tabela)? qual o tipo de CODU?
CODU é chave estrangeira.
Já fiz alguns testes e se há dados de retorno dai o codigo executa normal.
O problema ocorre quando a query nao acha nenhuma ocorrencia. Mas no meu programa isso pode ocorrer em algumas situações.
wbdsjunior
pauloaa:
wbdsjunior
CODU é uma chave estrangeira (é índice de outra tabela)? qual o tipo de CODU?
CODU é chave estrangeira.
Já fiz alguns testes e se há dados de retorno dai o codigo executa normal.
O problema ocorre quando a query nao acha nenhuma ocorrencia. Mas no meu programa isso pode ocorrer em algumas situações.
ok! mas qual o tipo de CODU?
P
pauloaa
eu consegui resolver o problema, acho que era só colocar todo o codigo dentro de um laço
utilizando o metodo next().
EX:
if(rg.next){codigo}
//Ouwhile(next){codigo}
no meu codigo sempre tinha uma linha que escapava desse laço o que gerava a exeção,
Mas valeu pela força wbdsjunior