fdsilva.desenv Novato

Registrado: Quarta-Feira, 28 de Novembro de 2012 Mensagens: 68
|
Enviada: Qui Nov 30, 2017 2:06 pm Assunto: Rotina segura para exclusão |
|
|
Prezados, boa tarde.
Tenho a seguinte estrutura de tabelas:
EntradaNF - Tabela Pai
ItmEntradaNF - Tabela Filha atrelada a Tabela Produtos e a EntradaNF
Por exemplo, acontece que algumas vezes, ao excluir uma nota fiscal, no meio das exclusões de itens, algum item pode dar problema na hora da exclusão por N motivos, atrapalhando o calculo do estoque_atual na Tabela de Produtos, dando falha no processo de exclusão da nota por inteira e perdendo assim a confiabilidade.
Isso porque faço de forma separada as exclusões (utilizando duas querys):
1 Query - Seleciono todos os itens da nota fiscal e faço a exclusão um a um atualizando o estoque do produto.
2 Query - Seleciono a nota fiscal em questão (já sem os itens, na tabela EntradaNF) e faço a exclusão dela.
Gostaria de saber se alguém possui uma forma de exclusão mais segura, ou seja, caso dê algum problema em um dos itens no processo de exclusão, eu possa dar uma mensagem de erro e dar um rollback em todo o processo que foi feito até o erro (ou seja, nas exclusões dos itens anteriores que ocorreram com sucesso).
Preciso dar confiança no sistema, mostrando que, ou ele faz o processo como um todo, ou as informações voltam como estavam antes da tentativa de exclusão.
Obs.: Utilizo o banco SQL SERVER 2008 e Delphi 7.
Obrigado pela atenção. |
|
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Qui Nov 30, 2017 7:11 pm Assunto: |
|
|
Boa noite,
Depende um pouco do componente que você está utilizando para acesso ao banco de dados, mas a idéia seria utilizar transação mesmo, dentro de um bloco try /except / end para executar o Commit se não ocorrer erros ou o Rollback. Ex:
| Código: | StartTransaction ou BeginTransaction
try
Exclusoes
Commit;
except
Rollback;
Mensagem de erro
end; |
Espero que ajude
_________________
Assinatura: https://www.imoveisemexposicao.com.br/imoveis-venda-guarulhos!gopouva-residencial-casa |
|