Erro na execução de script utilizando transação

Simulei a situação de um erro e mostrei na imagem na seta os dois comandos de deletar um registro e utilizando as rotinas de transação do scriptcase conforme a imagem e o que está acontecendo na seguinte ordem (Banco SQLSERVER):

  1. sc_begin_trans();
  2. apagar();
  3. executa o primeiro delete
  4. executa o segundo delete (ai gera o erro)
  5. ai vai para o sc_rollback_trans();
  6. mostra a mensagem do segundo erro

Ai que está problema, mesmo passando pelo rollback o primeiro registro que foi apagado não é desfeito!

Algum amigo já passou por situação parecida e sabem como solucionar? Tem alguma configuração no sqlserver para ativar ou desativar as transações?

Não entendi bem Ronaldo.
Esse código é fonte gerado automaticamente pelo SC?

Eu que fiz o mesmo e coloquei em um botão ajax e onde está sinalizado com a seta é o erro que eu coloquei para forçar o mesmo para ver se o rollback estava funcionando para poder estar desfazendo o primeiro delete!

Se quiser tentar com esse código que fiz, eu uso conexões em PDO, não sei se você usa também no SQLSERVER, mas se usar PDO vai retornar certo.
Pegar Retorno Linhas ou ERRO SQL / sc_begin_trans() / sc_rollback_trans() / sc_commit_trans() - Programação - Scriptcase

1 Curtida

Eu desenvolvi a bastante tempo uma classe para manutenção em nas minhas tabelas, como crio models para as tabelas o controle de transação é todo meu.
Meus formulários mais rebuscados são feitos em controle e uso essas classes para integração com bancos de dados.

1 Curtida