Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

hudson.martins

Rollback está deixando registros no banco

Recommended Posts

Alguém já passou por essa situação:Possuo alguns registros para serem inseridos no bd e se em algum instante ocorrer algum erro eu executo um Rollback. Mas acontece que ao inserir outra vez os mesmos registros com as correçõesnecessárias observo que o rollback executado anteriormente não excluiu parte dos registros e dessa forma ocorre erro de duplicação por não ter sido cancelada a operação antes do rollback.Alguém saberia o que pode ser esse problema ?Desde já agradeço a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade tá mais ou menos assim (Nessa sequencia):1. uma Query está inserindo o cabeçalho da nota fiscal. se nessa inserção houver alguma falha de calculo, Rollback, se não segui no passo 22. outra Query está responsável por inserir os itens digitados dentro de um StringGrid. se tudo correr bem nesse processo também, ok, se não... Rollback. E é aqui onde entra falha... Se por ventura eu inserir uns 5 registros o rollback tira os registros de números 1, 4 5. os registros de número 2 e 3 não são exlcuidos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o pior que já. e todo o processo ocorre sem problemas... não é mostrado nenhuma mensagem de errono rollback... mas quando é executado após eu ter usado o Insert dos itens da nota esse problema ocorre.não sei se pelo número de registros a Query estaria executando um Commit implicito... mas mesmoassim não faria muito sentido.O processo tá assim:StartTransactioni := 0;<Parametros da QueryNota recebem os valores>try QueryNota.ExecSQL; except begin Rollback; i := 1; end;end;<Parametros da QueryItemNota recebem os valores>try QueryItemNota.ExecSQL;except begin Rollback; i := 1; end;end;if i = 0 then Commit;esse é um resumo.. porque quem fez, fez um código muuuuito extenso.mas no geral está assim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.