Dúvida com codigo no banco[RESOLVIDO]

9 respostas
Schoker

Olá…Bom dia a todos…

Bomm…eu tenho um cadastro de clientes no meu sistema…e para ter um controle desses clientes eu criei um campo “codigo”(auto incremento) na tabela de cadastro de clientes do meu banco…o problema é o seguinte:

no meu formulário tem a opção de tirar a foto do cliente atraves de uma webcam…e quando tirasse a foto ele iria salvar em uma pasta com o nome da seguinte forma: “ocodigodocliente.jpg”…só que eu só vou saber qual é o codigo do cliente depois que eu cadastrar ele…pq o campo eh auto incremento…tem um jeito de saber qual é o proximo codigo do auto incremento?

desde já agradeço…

9 Respostas

renanedpedroso

Não seria mais fácil você criar uma coluna e gravar o nome da imagem na mesma tabela?

renanedpedroso

No caso do MySQL tem como você verificar depois que faz a inserção.

Em outros bancos como Firebird e Oracle, você usará sequences.

Veja este link:

http://www.guj.com.br/posts/list/201392.java

Espero ter ajudado.

Abraço!

Hebertbc

pq não salvar a imagem no banco de dados tbm?

Schoker

entao…mas para eu guardar o nome da imagem no banco eu precisaria do nome dela…e o nome dela irá ser formado com o codigo do cliente: “codigodocliente”.jpg…ai eu precisaria saber o codigo…

renanedpedroso

Veja os link que eu te passei sobre ids ‘autonuméricos’.

Abraço!

Schoker

ah tah...agora entendi...se eu inserir o meu registro e logo depois eu fizer o comando:

PreparedStatement ps = conexao.prepareStatement("SELECT LAST_INSERT_ID()");

ResultSet rs = ps.executeQuery();

int id = 0;
if (rs.next()) {
    id = rs.getInt(1);
}

ai eu pego esse codigo e jogo no nome da imagem...

isso mesmo hehe...

vlw pela ajuda!!

Abraço!

renanedpedroso

Altere o nome do post adicionando ‘[RESOLVIDO]’.

Abraço!

rogelgarcia

Só uma observacao sobre esse SELECT LAST_INSERT_ID()

:arrow: Se voce fizer duas inserções rapidamente… e depois chamar o SELECT LAST_INSERT_ID() voce pode receber o número incorreto

renanedpedroso

rogelgarcia:
Só uma observacao sobre esse SELECT LAST_INSERT_ID()

:arrow: Se voce fizer duas inserções rapidamente… e depois chamar o SELECT LAST_INSERT_ID() voce pode receber o número incorreto

Aí o programador é que tem que tratar isso…

Você não pode fazer dois inserts e querer pegar o valor do id da primeira inserção, concorda?

Outra coisa…

Se estiver falando de várias máquinas, isso não ocorre pois o banco já trata isso.

Seria problema utilizar ‘SELECT MAX(ID)’

Abraço!

Criado 24 de março de 2010
Ultima resposta 24 de mar. de 2010
Respostas 9
Participantes 4