A priori ta tudo certo, mas parece que o Resultado, que julgo ser da sua query, nao retornou nada… coloque um System.out.println dentro do seu while… pra ver se ta trazendo alguma coisa…
B
BrunoCarloPJ
Foi mal… agora que vi o erro… :mad:
O problema e que vc nao instancio o array… ae da NullPointerExcption…
H
HericksnakePJ
Cara, acho que entendi o erro.
Primeiro, estava declarando:
String retorno[];
O correto seria:
String[] retorno;
Mas mexi aqui e não deu certo… O Resultado retorna valores do banco sim…
Tem como me explicar melhor??? Valew…
Acho que mexi tanto com isso hoje, que já esgotou os neurônios do dia… :roll:
B
BrunoCarloPJ
Ola
Em java, quando vc declara um array vc tem que instancia-lo para poder usa-lo, tipo:
String[]args=newString[10];
Assim vc cria um array com 10 posicoes para usar, sendo que nao sao 10 strings, e sim dez posicoes para alocar uma string.
Entao, no seu codigo, quando vc declara a string, diz que havera um array de strings, mas nao o instanciou… isto que esta causando o erro.
O problema de fazer isto com array de string e que no caso do java.sql.ResultSet vc nao sabe previamente quantas linhas foram retornadas… entao nao tem como vc instanciar o array e garantir que cabera todos os resultados…
Eu aconselho vc a usar um java.util.ArrayList, que e uma lista alocada dinamicamente.
H
HericksnakePJ
Ufa…
Cara, salvou o dia…
Eu já tinha usado isso mas não lembrava de jeito nenhum…
Agora deu certo!!
Quanto retorno os dados da consulta, algumas eu consigo saber quantos valores serão retornado, assim não vou ter problema. Mas vou tentar verificar a quantidade de valores retornados da Query, assim eu consigo instanciar esse vetor com diferentes valores em tempo de execução.
Muito obrigado mesmo!
Abraço!
B
BrunoCarloPJ
Ola,
Mas tem um metodo, toArray, que te retorna um array do list, nao precisa tentar descobrir… pode trabalhar com o ArrayList dentro do metodo ehora de retornar chamar o toArray() que ele vai te dar um array… pq descobrir previamente a quantidade de resultados que tem no ResultSet tem que fazer uma gambiarra danada…
E so pra complementar mais ainda… a um serio problema com o metodo toArray que nao recebe parametros… ele nao aceita um cast, assim vc usa o toArray e passa um o tamanho do list, assim:
String[] arg = new String[list.size()]);
myList.toArray(arg);
return arg;
e pronto, vc tem o array de String…
H
HericksnakePJ
Valew!! Vou testar com certeza!
Obrigado!
Opa!!! Testado e aprovado!!
R
rodolfocoutinhoPJ
Só lembrando que isso tem o mesmo efeito, os dois estão corretos.