[firebase-br] LOG Criar/registar LOG

Jeferson Oliveira jefersonfoliveira em gmail.com
Seg Dez 18 18:23:06 -03 2006


Mário Reis escreveu:
> repare a documentação do FB1.5, Pag.48  tem o seguinte exemplo:
...
> Ora o que V. meestá dizendo é que a Exception a seguir ao Insert "desfaz" o
> que fez o Insert
> Poderá ser mas parece absurdo.

Mário,

Muito boa sua citação. Fui ao release notes da versão 1.5 e lá está de
fato o exemplo que você citou.

Todas minhas respostas até agora tem base empírica; e estão também
embasadas na documentação do Interbase 6, minha fonte de estudos
inicial quando comecei a ter contato com o Ib/Fb.
No arquivo Langref.PDF, às páginas 166/167 é descrito o comportamento
de uma exception, cujo trecho tomo a liberdade de transcrever abaixo:

"Description
  An exception is a user-defined error that has a name and an
associated text message.
When raised, an exception:
- Terminates the procedure or trigger in which it was raised and
undoes any actions performed (directly or indirectly) by the procedure
or trigger.
- Returns an error message to the calling application. In isql, the
error message is displayed to the screen."

Observe que o texto acima justifica o que foi dito sobre o
cancelamento da transação.
Mas não entre em pânico ainda :-), pois há, logo na sequência, um
trecho que corrobora a eficiência do exemplo do release notes:

"Exceptions can be handled with the WHEN statement.
If an exception is handled, it will behave DIFFERENTLY."

Note então que esse caso é previsto na documentação. Uma exceção
capturada terá um comportamento diferente.
Mas há como capturar com a cláusula WHEN ANY uma exceção definida no
banco de dados? Se sim, seus problemas podem ser assim resolvidos.


Abraço!
Jeferson Oliveira




Mais detalhes sobre a lista de discussão lista