Fórum retornar o código gerado (auto-incremento) para a aplicação #54752
15/01/2006
0
ou seja, tenho uma tela de cadastro de Clientes, quando pesso um novo (insert) o campo código fica em branco. preencho todo o registro e salvo (post). o campo código continua em branco, mas o valor já foi gerado na tabela.
quero agora colocar o valor deste campo logo após salvar o registro.
Raserafim
Curtir tópico
+ 0Posts
15/01/2006
Edilcimar
Append;
With IBQuery1 do
Begin
Close;
SQL.Clear;
SQL.Add(´Select gen_id(CLIENTES_NUMCLIENTE_GEN, 1) from RDB$DATABASE´);
IBQuery1.Open;
NumCliiente := IBQuery1.Fields[0].AsInteger;
End;
e depois pego a variável NumCliente e jogo para dentro do banco, no campo autoincremento
Gostei + 0
15/01/2006
Thomaz_prg
Gostei + 0
16/01/2006
Raserafim
ou seja, no momento que eu der um refresh na tabela, tenho que passar como parâmetro para a query o código do cliente.
Gostei + 0
16/01/2006
Raserafim
vc está olhando o valor do auto0incrmento atual logo após o registro ser salvo, mas e se alguém tb salvar um registro no intervalo de vc salvar o seu e ver o gen_id? assim vc vai ter um valor errado.
acho q o ideal seria que após salvar o registro, a aplicação receber o valor que foi utilizado. mas como a aplicação vai saber isso? eis a questão.
Gostei + 0
16/01/2006
Edilcimar
Gostei + 0
16/01/2006
Thomaz_prg
Mas se o parâmetro já foi passado, ele ainda terá em memória o último valor lançado, sendo assim, você pode usar normalmente o Refresh.
Gostei + 0
17/01/2006
Raserafim
Gostei + 0
18/01/2006
Raserafim
edilcimar, vc está dizendo que esta função também faz com que seja incrementado de um do valor que foi retornado? é isso?
o simples fato de consultar já vai incrementar?
Gostei + 0
18/01/2006
Edilcimar
With IBQuery1 do
Begin
Close;
SQL.Clear;
SQL.Add(´Select gen_id(CLIENTES_NUMCLIENTE_GEN, 1) from RDB$DATABASE´);
IBQuery1.Open;
NumCliente := IBQuery1.Fields[0].AsInteger;
showmessage(inttostr(numcliente));
End;
faça este teste e verá que o numcliente será alterado todas as vezes
Gostei + 0
19/01/2006
Raserafim
acabei utilizando este esquema que vc disse.
valeu edilcimar
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)