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.