Problema com um método.. SQL

7 respostas
ThomasCouto

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

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;
    }

7 Respostas

Rafael_Steil

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

Fabricio_Cozer_Marti

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…

ThomasCouto

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.

Fabricio_Cozer_Marti

será que ele confundiu o alias com o nome da coluna ?

tente essa query.

select max (codigo) as cod from oficina
ThomasCouto

An unexpected error has been detected by HotSpot Virtual Machine:

EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7c901010, pid=3148, tid=1792

Java VM: Java HotSpot™ Client VM (1.5.0_02-b09 mixed mode, sharing)

Problematic frame:

C [ntdll.dll+0x1010]

An error report file with more information is saved as hs_err_pid3148.log

If you would like to submit a bug report, please visit:

http://java.sun.com/webapps/bugreport/crash.jsp

Rafael_Steil

Ignore, e tente de novo :slight_smile:

Rafael

ThomasCouto

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

Criado 13 de maio de 2005
Ultima resposta 13 de mai. de 2005
Respostas 7
Participantes 3