Olá amigos, estou com um problema nesse método cuja função é pegar o maior valor contido em uma tabela de nome codigo… A tabela está com auto-numeração… Alguém pode me dar uma força ? Ele sempre retorna o valor “-1”, valor iniciar de “max”… Abraço pra voces
[code]
public int getMaxNumero() {
String clausula = “select max (codigo) from oficina”;
int max = -1;
try {
pstmt = con.prepareStatement(clausula);
rs = pstmt.executeQuery();
if (rs.next()) {
max = rs.getInt("codigo");
}
pstmt.close();
con.close();
} catch (SQLException err) {
err.getMessage();
}
return max;
}[/code]
Nao esta funcionando da maneira esperada pq o codigo esta dando erro ao rodar e vc esta otimindo a mensagem de erro. Ao inves de fazer
} catch (SQLException err) {
err.getMessage();
}
faca
} catch (SQLException err) {
err.printStackTrace();
}
e ai vc vai ver que a msg de erro acusa que o campo “codigo” nao existe, ja que voce fez “max(codigo)” ao inves de “max(codigo) AS codigo”.
Caso nao queira especificar o alias, um rs.getInt(1) resolve.
Mas mesmo assim, NUNCA omita mensagens de erro.
Rafael
Exato.
O correto seria que fosse relancada a excecao ou registrasse num arquivo de log.
o que foi feito se chama de abafamento de excecoes, e é considerado
uma penalidade grave. rsrsrs…
Engraçado agora tá assim: [Microsoft][Driver ODBC para Microsoft Access] Referência circular causada pelo alias ‘codigo’ na lista SELECT da definição da consulta.
será que ele confundiu o alias com o nome da coluna ?
tente essa query.
select max (codigo) as cod from oficina
Consegui =) o problema era que eu estava fechando a conexão ! aí quando eu queria acessar denovo ela estava fechada ai dava erro ehehe…
valeu a todos que me ajudaram []'s