Problema com Campo Auto Incremento no Delphi por usar PostgreSql
Olá a todos! Preciso de um help referente como criar um trigger ou procedure no delphi para que códigos (auto incremento) não percam. Estou usando componentes Ado para conectar com o postgresql e um Dbnavigator para fazer as inserções edições dos dados. Porém ao fazer inserção em vez de aparecer o próximo numero do código está exibindo o anterior. Será que alguém pode me ajudar???
Abrs.
Abrs.
Maria Elizandra
Curtidas 0
Respostas
Maria Elizandra
19/06/2012
Olá, todos!
Resolvi este pequeno probleminha utilizando a instrução sql "select max(codigo)from tabela as id_codigo" inserindo em uma query e quando estiver no estado de inserção o codigo da tabela receberá o último código + 1 para incrementar.
Obrigado pela atenção!
Resolvi este pequeno probleminha utilizando a instrução sql "select max(codigo)from tabela as id_codigo" inserindo em uma query e quando estiver no estado de inserção o codigo da tabela receberá o último código + 1 para incrementar.
Obrigado pela atenção!
GOSTEI 0
Alisson Santos
19/06/2012
nesse caso poderia utilizar um generator com uma trigger que seria mais facil mesmo.
No caso de não aparecer é referente o generator disparar após comitar as informações no banco.
Caso precisasse pegar o numero anterior poderia utilizar uma função para fazer isso.
No caso de não aparecer é referente o generator disparar após comitar as informações no banco.
Caso precisasse pegar o numero anterior poderia utilizar uma função para fazer isso.
GOSTEI 0
Bruno Leandro
19/06/2012
ola Maria, eu utilizo o postgre com delphi conectando pelo zeos e meus campos serial ou bigserial, funcionam corretamente
GOSTEI 0
Bruno Leandro
19/06/2012
o problema de utilizar select max + 1 é que voce tera que implementar um semaforo pois se dois usuarios comitarem ao mesmo tempo irá gerar uma excessao
GOSTEI 0
Maria Elizandra
19/06/2012
Olá, Bruno!
Vc tem razão não tinha pensado essa questão de ocorrer dois cadastrados ao mesmo tempo, de fato preciso criar um exeption. Obrigado pela dica!
Vc tem razão não tinha pensado essa questão de ocorrer dois cadastrados ao mesmo tempo, de fato preciso criar um exeption. Obrigado pela dica!
GOSTEI 0