[firebase-br] Alguem me ajuda a compreender porque o EXCEPTION na Trigger Bloquei o meu client delphi uso IBX (
Gladiston Santana
gladiston.santana em gmail.com
Quinta Outubro 2 10:21:55 -03 2025
Uma exception termina imediatamente e quebra a cadeia da transação.
Executar uma procedure que registra o erro em algum lugar, mas não tem uma
exception dentro irá prosseguir normalmente.
Voce só usa exception quando tem certeza que não pode prosseguir com a
informação errada. Se é uma trigger, voce pode ao inves duma exception
mudar o valor do campo, ex NEW.CP7_ID=OLD.CP7_ID(ou outro valor literal),
voltando ao valor original.
É importante que voce trate dentro do delphi as exceptions e dê
o "dataset.Cancel " ao inves do "dataset.commit" se estiver usando
datawares ou .rollback para desfazer a ação para que o usuário reentre a
informação, senão o Delphi assume de maneira deselegante com mensagens
pouco intuitivas e dando a entender que ainda pode prosseguir quando na
realidade a cadeia da transação já foi desfeita.
Noto também que esta usando um collation do codepage 850 que vinha do cp850
do MSDOS, é isso mesmo? Começou errado e ninguém mudou ou é tão antigo que
vinha do Windows 95?
Mais detalhes sobre a lista de discussão lista