[firebase-br] SUSPEND FOR SELECT Exemplos?
Mário Reis
mariodosreyx em gmail.com
Dom Set 7 14:07:55 -03 2008
Olá Amigos,
P/cada linha que verifica as condições da
Selecção Crio uma Linha no ficheiro de Cobranças
a Débto do Sócio ou Utente(Cliente), assim:
For Select * From Contratos
where Dt_Prox_PRESTACAO Between Dt_P_Ini AND Dt_P_Fim
INTO :WVARS.................
Do
Begin
Executa Calculos_com_as Vars
/* E, depois Carrega em Cobrancas */
Insert Into Cobrancas(Campos....) Values(Var_resultantes__do_Calculo...)
/* "O que e como fazer em caso de erro numa das linhas ??? "
/* If Not Error then */
UPDATE CONTRATOS SET CAMPOS...= VALORES
/* ELSE */
/* ESCREVE_NO LOG_DE_ERROS */
End
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.
Estarei certo ou terei percebido mal?
De qualquer forma algém sabe onde poderei conseguir um
exemplo do género?
Depois tenho mais uma qestão.
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?
É 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.
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?
Obrigado
Mais detalhes sobre a lista de discussão lista