Generator que Incrementa mesmo Após o Rollback
Rogério Monteiro
monteirorama em gmail.com
Sex Abr 30 15:20:07 -03 2010
Olá Colegas.
Uso Delphi 7 + ZeosLib + FB 2.1.
tenho uma tabela chamada ESTOQUEPAPELSOBRAS que é filha da tabela
ESTOQUEPAPEL. Todas as tabelas, eu disse TODAS, eu tenho primeiramente um
campo chamado ID que é a minha chave primária e que são auto-incrementadas
pela trigger no BEFORE POST do FB. Portanto:
Em
ESTOQUEPAPEL - ID -->> PK
ESTOQUEPAPELSOBRAS - ID -->> PK
ESTOQUEPAPELSOBRAS -->>
FK que recebe o ID de ESTOQUEPAPEL.
Na tabela ESTOQUEPAPELSOBRAS tenho tb um campo chamado ALTURA e outro
LARGURA, e uma Unique Constraint com os campos IDESTOQUEPAPEL, ALTURA,
LARGURA.
Utilizo TZQuery + TDataSetProvider + TClientDataSet.
Pois bem, logo, se eu tento cadastrar na ESTOQUEPAPELSOBRAS uma ALTURA e
LARGURA repetida, eu somente consigo pegar a exceção no evento
OnReconcileError do CDS, e não no AfterPost como no restante das tabelas, e
dou um Rollback. Até aí td bem.
PROBLEMA:
Verifico o Generator que incrementa o ID de ESTOQUEPAPELSOBRAS e, ao invés
de ele não incrementar nada pq houve exceção, se por exemplo ele estiver no
número 4, ele incrementa 3 e vai para 7. Se está com 5 vai para 8 e assim
por diante.
Como fazer esse 'rollback' neste caso?
Desde já agradeço a todos.
Rogério.
Mais detalhes sobre a lista de discussão lista