Problema com Campo Auto Incremento no Delphi por usar PostgreSql

Delphi

19/06/2012

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.
Maria Elizandra

Maria Elizandra

Curtidas 0

Respostas

Maria Elizandra

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!
GOSTEI 0
Alisson Santos

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.
GOSTEI 0
Bruno Leandro

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

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

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!
GOSTEI 0
POSTAR