Duvida sobre o BEGIN TRANSACTION

Bom dia, Estou com uma duvida, o BEGIN TRANSACTION funciona perfeitamente bem, em caso de erro ele executa o ROLLBACK certinho, porem, como eu sei que foi executado esse rollback? estou fazendo um JOB e queria deixa-lo o mais claro possivel.

Boa tarde Patrick, não entendi bem, se gerou erro, a sua thread “morre” certo? Como você quer saber exatamente que aconteceu o rollback se do erro pra frente, não existiria mais nada?

Não não, eu gostaria de saber se após o END TRANSACTION não tem como eu saber como foi a transação, se ela terminou ou ocorreu algum problema.

Boa tarde Patrick,

O Begin Transaction e o End Transaction são comandos de pré-compilação, na verdade isso vira uma outra instrução.

Ao criar esses blocos, o controle de transação é ativo, em caso de erro, o bloco de exceção padrão do Protheus fará o rollback de forma automática, enquanto caso não ocorra erro, o End Transaction será o responsável por efetuar o commit dos dados, não existe qualquer forma de "ver" isso, só existe forma de verificar se você está dentro de uma transação, com a função InTransact.

Ou seja, a forma de saber que tudo ocorreu bem, é apenas a continuidade da thread, pois em caso de erro, será gerada uma exceção e a thread será encerrada.

https://tdn.totvs.com/pages/viewpage.action?pageId=271843449

Ou seja, se o comando seguinte ao End Transaction for executado quer dizer que tudo ocorreu corretamente?

Muito obrigado novamente mais uma vez Daniel!

Opa, exato, de nada! =)