Trigger derruba transação do ADO

07/03/2010

0

Ola pessoal, estou precisando de uma ajuda. Em nosso sistema usamos Delphi 2009 e Sql Server, comunicando via ADO. Em diversas rotinas abrimos uma transação com o banco (Con.BeginTrans), executamos uma série de procedimentos (sempre via delphi) e no fim, se não deu nenhum pepino mandamos um Con.CommitTrans.

Bem esse senário já funciona a bastante tempo e temos muita coisa implementada usando essa linha de raciossínio. Só que surgiu uma necessidade de criar um campo novo na tabela de pagamentos e eu resolvi preenche-lo usando uma trigger direto no banco de dados. O código da trigger ficou do geito que precisavamos, funcionou bem ..... só que, sempre que a tabela de pagamentos sofre um insert ou update, que é quando a trigger deve entrar em ação, e esse insert ou update esta implementado dentro de um bloco iniciado com BeginTrans no delphi, acontece uma excessão (erro).

A trigger ao ser executada abre sua própria transação (acredito que seja assim que funcione) e "derruba" minha transação iniciada no Delphi. Ou seja, ou eu uso trigger no sql server ou BeginTrans no delphi. Existe essa limitação mesmo?

Tem como resolver isso?


Grato pela atenção.
Marciley Ferreira

Marciley Ferreira

Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar