[firebase-br] Compatibilidade Firebird 2 x DBExpress

Magno System magno em speet.com.br
Sáb Mar 24 10:56:45 -03 2007


Mudei outras estruturas também. Ao invés de chama a stored procedure 
BAIXAESTOQUE de dentro da procedure que CADASTRAVENDAS, coloque ela dentro 
de uma trigger after insert da tabela vendas. E estou pensando mudar para a 
trigger after insert de auxvendas. Pois aí ficaria assim:

Abre transação
Cadastra 1 item
Abate estoque de 1 item
Fecha transação

Ao passe que na trigger vendas fica assim

Abre transação
Cadastra todos os itens da venda e vai abetendo o estoque de cada um
Fecha transação

Como eu disse, mesmo esta segunda a transação dura questões de fração de 
segundos, mas gato escaldado...

Outra coisa que corrigi foi a seguinte: antes eu dava um commit sem 
tratá-lo.

Agora faço o seguinte (resumidamente);

Try
    Transacao.commit;
Except
    Begin
        Transacao.Rollback;
        Mensagem de Erro;
    end
end

Antes eu fazia assim:

Transacao.starttransaction
Entrada de parametros
Mandava executar
Transacao.commit;

Tenho um colega que disse que fazia assim e quando dava um erro, por não ter 
o rollback, ele não conseguia executar mais nenhuma transação. Bem é isto, 
ufa...

T+ 





Mais detalhes sobre a lista de discussão lista