[firebase-br] Onde esta o erro?

Zottis IG bzottis em ig.com.br
Ter Out 13 13:26:10 -03 2009


na realidade, a Trigger é Before Update

coloquei o exemplo do Delete apenas para mostrar que da certo,

ALTER TRIGGER Tg_lanca_cta_boleto_ctarec
ACTIVE BEFORE UPDATE POSITION 125
AS
begin
  if (new.Boletono is not null) then/* Quando aqui Mudar(e não for Nulo), é 
para lançar na tabela CONTAS_BOLETO */
    begin
       IF (old.Contano not IN ( SELECT CB.Contano  FROM Contas_boleto 
CB ))then/* O Old.ContaNo é a Chave primária da tabela Ctarec, então ele não 
foi alterado*/
        INSERT INTO CONTAS_BOLETO (CONTANO, BOLETONO, VALOR) VALUES 
(old.CONTANO,    new.BOLETONO, old.Valor); /*Aqui não tenho certeza se é 
assim mesmo. sei que o Campo ContaNo e Valor não foram mudados, apenas o 
Campo BoletoNo*/
    end
end
Arte&Cor Estamparia - Zottis

"Um homem só tem o direito de olhar
  a um outro de cima para baixo, quando
  vai ajuda-lo a levantar-se".
                   Gabriel Garcia Marquez
----- Original Message ----- 
From: "Marco Antonio Abreu" <mabreu.ti em gmail.com>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, October 13, 2009 12:06 PM
Subject: Re: [firebase-br] Onde esta o erro?


Olá Zottis,

Eu não entendi direito o seu caso. Você não mandou o código onde tem a
função Substring.

Um detalhe é que uma trigger de deleção não tem campos NEW.xxx, apenas
OLD.xxx. Eu nunca usei um NEW com delete, mas acho que vai voltar sempre
NULL.

as,
Marco


2009/10/13 Zottis IG <bzottis em ig.com.br>

> Pessoal, estou verificando a existencia de um registro na tabela
> através de uma Trigger, mas da erro,
> diz que o Substring é ilegal neste contexto.
>
> a tabela de CtaRec tem um Campo BoletoNo onde cadastro o numero do Boleto
> que ela pertence.
> quando este numero for cadastrado, ele lancará um registro na tabela
> CONTAS_BOLETO.
>
>  if (new.Boletono is not null) then
>   begin
>     if (old.Contano not IN ( SELECT CB.Contano  FROM Contas_boleto CB
> ))then
>        INSERT INTO CONTAS_BOLETO (CONTANO, BOLETONO, VALOR) VALUES
> (new.CONTANO, new.BOLETONO, new.Valor);
>   end
>
> alguém sabe como utilizar sem precisar de uma procedure?
>
> desde já agradeço.
> o interessante é que se for para Deletar, ele da certo.
>
> pois uso assim:
>
> DELETE from produtos
> WHERE produtos.deletado = 'S' and  produtos.data_exclusao <= (CURRENT_DATE
> - COALESCE(( SELECT (DIAS_LIMBO) FROM opcoes),90))
>  AND (produtos.produtono NOT IN ( SELECT itens.produtono  FROM itens )) 
> and
> (produtos.produtono NOT IN ( SELECT itensorc.produtono  FROM itensorc ))
>   AND (produtos.produtono NOT IN ( SELECT itemos.produtono  FROM itemos ))
> and (produtos.produtono NOT IN ( SELECT itemorcfornec.produtono  FROM
> itemorcfornec ))
>   and (produtos.produtono NOT IN ( SELECT nota_fiscal_itens.produtono FROM
> nota_fiscal_itens ));
>
>
> Arte&Cor Estamparia - Zottis
>
> "Um homem só tem o direito de olhar
>  a um outro de cima para baixo, quando
>  vai ajuda-lo a levantar-se".
>                  Gabriel Garcia Marquez
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
Marco Antonio Abreu
mabreu.ti em gmail.com
System Analist/Developer
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista