Como evitar duplicidade de Numero de nota fiscal?

Delphi

26/05/2009

Estou com uma duvida, como evitar ter o numero da nota fiscal com falhas?


Delphi+Firebird.
Sei que tenho que ter o numero em um generator


se na aplicação colocar

numero=generator
gravar nota fiscal
gravar produtos
gravar duplicata
gravar boleto
gravar livros fiscais
gravar contabilidade

funciona mas se a transação for cancelada se perde o numero.


Se passar o numero para o Trigger o numero não se perde mas não terei o numero pra gravar em
gravar duplicata
gravar boleto
gravar livros fiscais
gravar contabilidade

como fazer?


Edmarfrazao

Edmarfrazao

Curtidas 0

Respostas

Marcosrocha

Marcosrocha

26/05/2009

Por qual motivo a rotina falharia?


GOSTEI 0
Edmarfrazao

Edmarfrazao

26/05/2009

poderia falhar por N motivos.

uma queda de energia antes do commit

uma quebra de regras do BD.


GOSTEI 0
Marcosrocha

Marcosrocha

26/05/2009

Em caso de queda de energia o seu banco de dados tem que ser inteligente o suficiente para apenas efetivar os dados após um commit. No caso do Firebird, ao cair a rede (energia) e ligar o servidor, todas as transações em aberto são descartadas, mantendo apenas os dados efetivamente incluídos (comitados) no banco.
O método correto é pegar o Generator antes de gravar em qualquer tabela, portanto seu sistema tem que estar preparado para evitar de acontecer o cancelamento de uma transação ao salvar a nota fiscal.


GOSTEI 0
POSTAR