Retorno da Servlet

Srs, estou com problemas neste método (abaixo), pois preciso que o resultado do mesmo retorne a consulta completa (cerca de 6 linhas), no entanto ela estava retornando apenas a 1ª linha…era por causa do if na linha …if aQuery.next(), então coloquei o while, mas o agora esta aparecendo um erro “missing return statement” no fechamento da chave do método, que não me deixa eu concluir o código. Alguem poderia me auxiliar? Uso NetBeans 5 + Mobility Pack. Agradeço desde já a atenção de todos.

[quote] private String consulta(String login, String senha){
try
{
Class.forName(“org.firebirdsql.jdbc.FBDriver”);
Connection con = DriverManager.getConnection(“jdbc:firebirdsql:localhost:”
+“c:/java/j2me/said/dados.fdb”,“SYSDBA”,“masterkey”);
Statement Stm = con.createStatement();
String sql=“select codigo, login from USUARIOS where login =” + login +
“and senha = '” + senha + “’”;
ResultSet aQuery = Stm.executeQuery(sql);

while (aQuery.next()){
    return aQuery.getString("produto") + " - " + aQuery.getString("preco");
}
if ((aQuery.next() == false))
    return null;
}
catch (Exception e){
    return e.toString();
}    

} [/quote]

Ola Lourival, tenta fazer o seguinte:
Coloque o seu while dessa maneira:

String retorno = "";

while (aQuery.next()){ 
retorno += aQuery.getString("produto") + " - " + aQuery.getString("preco") + "\n"; 
}

E no final da função você coloca:


return retorno;

Veja se com isto dá certo…

Abraços…

Uau!!!

Era isto mesmo de que eu precisava.

Agora preciso tratar o retorno, ou seja, fiz assim:

[quote]if (retorno != null) {
return retorno
}
else
return null[/quote]

Mas aí ao testar, simulei um retorno == null, mas não tive nenhum resultado, na verdade deveria retornar a mensagem “Atenção: Login/Senha incorretos!!!”, mas retornou uma tela vazia. Olha se eu estou errando na sintaxe do retorno. Agradeço desde já a sua valorosa atenção!!!.

Veja o código completo:

[quote]protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//-------------
String login = request.getParameter(“login”),
senha = request.getParameter(“senha”);

String dados = consulta(login,senha);
if (dados == null){
    response.sendError(response.SC_BAD_REQUEST,"Atenção: Login/Senha inválidos!!!");            
    return;
}    
response.setContentType("text/plain;charset=UTF-8");
PrintWriter out = response.getWriter();
out.print(notas);
out.close();        
//-------------
}

private String consulta(String login, String senha){
try
{
Class.forName(“org.firebirdsql.jdbc.FBDriver”);
Connection con = DriverManager.getConnection(“jdbc:firebirdsql:localhost:”
+“c:/java/j2me/said/dados.fdb”,“SYSDBA”,“masterkey”);
Statement Stm = con.createStatement();
String sql=“select codigo, login from USUARIOS where login =” + login +
“and senha = '” + senha + “’”;
ResultSet aQuery = Stm.executeQuery(sql);
String retorno = “”;
while (aQuery.next()){
retorno += aQuery.getString(“codigo”) + " - " + aQuery.getString(“login”) + “\n”;
}
if (retorno != null){
return retorno;
}
else
return null;
}
catch (Exception e){
return e.toString();
}
}[/quote]

Então, pois se ele nao encontrar o usuário, vc esta colocando para retornar null.

Coloque assim:


if (retorno != null) { 
return retorno 
} 
else 
return "Atenção: Login/Senha incorretos!!!"; 

Veja se dá certo…

Abraços…

Valeu amigao, deu certo!
As vezes, na ansia de resolver rápido, nos perdemos e não raciocinamos direito.

Obrigado mesmo.