[firebase-br] SUSPEND FOR SELECT Exemplos?

Marcelo Papuska krpmate em gmail.com
Seg Set 8 03:23:17 -03 2008


Ola Mario, tentanto ajudar ....

1 - A pergunta é onde devo colocar o "SUSPEND"
Do que li não neste caso não seria obrigatória
a utilização do SUSPEND já que o seu resultado
não é para ser retornado ao Utilizador. ?

Correto, suspend vc somente utiliza em stored procedures que irao retornar
algum valor.
e deve ser colocado no final da procedure antes do ultimo end.

2 - Supunhamos que o INSERT em cobranças corre mal.
Nesse caso o Firebird desfaz toda a transacção,
o mesmo será dizer que ninguém será debitado
até se descobrir o motivo do erro.
Até aqui tudo bem mas, como faço para notificar o
Cliente do Erro?

Bem o que eu faco e apos dar o insert na tabela, dar um count para verificar
se o ultimo registro inserido realmente existe, se nao existir, insira o
"erro" em uma tabela temporaria de log e depois do procedimento de um select
nesta tabela informando ao usuario, atencao, os registros abaixo nao foram
processados bla bla bla.. Esta e a maneira mais simples e clara para o
usuario final.
Envolve um pouco de programacao e banco de dados.

3 - )É esta parte que ainda não percebi, i.e., como
faço para notificar o usuário em cada comando de
SQL falhado, já que, tenho de fazer trap ao erro
no fim antes do ultimo "END", e, sendo assim, não
tenho como dizer se o Erro aconteceu no meu 1.º
"For Select..." ou se no meu INSERT ou UPDATE.

Eu faria da mesma forma que mensionai na questao 2.

4 - )Com certeza que haverá uma forma de o fazer, até porque,
em caso de Erro sempre teremos de assinalar que o registo XPTO
não foi "aplicado" Ou estarei a ver mal o problema?

Acho que na versao 3.0 irao vir novidades no controle transacional.

Abracao.



Mais detalhes sobre a lista de discussão lista