[firebase-br] Duvida sobre Trigger

Edinho ed.rodrigo em gmail.com
Sex Abr 2 00:29:35 -03 2010


Posta o erro quando executa... mas da uma olhada aqui:

SELECT FIRST 1 1 FROM  sstock_semillas
 WHERE ( sstock_semillas.empresa = new.empresa and

Qual o nome do campo que voce deseja pegar o valor? 1?
tenta algo assim:

SELECT FIRST 1 nome_campo FROM nome_tabela
 WHERE sentenca_validacao_logica...

Tá ae a tentativa de ajuda... espero que de certo!  Vale lembrar que nao
tenho um vasto conhecimento em firebird/sql... to aprendendo ;) e ajudando.

p.s.: Precisa de tudo isso? Nao entendi onde voce quer chegar... faz uma
trigger AFTER INSERT, se ele ta inserindo um registro novo é pq esse
registro nao existe,,, entao nao ha  a necessidade de verificar se existe ou
nao, simplesmente adiciona o registro em outra tabela com uma trigger AFTER
INSERT... isso resolve? Se nao for isso, desculpe :)

Att,

2010/3/31 Paulo Sérgo Feix <paulinhofeix em gmail.com>

> Boa tarde
>
> Preciso de ajuda, tenho que fazer o seguinte uma trigger, quando estiver
> incluindo um registro e este registro for novo ela deve incluir em outra
> tabela de Stock, tentei fazer desta forma mais esta dando erro, segue o
> exemplo:
>  AS
> DECLARE VARIABLE Existe smallint ;
> begin
> Existe = 0;
> SELECT FIRST 1 1 FROM  sstock_semillas
>  WHERE ( sstock_semillas.empresa = new.empresa and
>         sstock_semillas.filial = new.filial and
>         sstock_semillas.grano = new.granos and
>         sstock_semillas.variedade = new.variedade and
>         sstock_semillas.id_producto = new.id_producto and
>         sstock_semillas.transgenico = new.transgenico and
>         sstock_semillas.categoria = new.categoria and
>         sstock_semillas.lote = new.lote and
>         sstock_semillas.deposito = new.deposito and
>         sstock_semillas.bloco = new.bloco and
>         sstock_semillas.letras = new.l_letra and
>         sstock_semillas.zaranda = new.zaranda )
>   INTO :Existe ;
>   if ( :Existe = 1 ) then -- existe
>   begin
>     update sstock_semillas set
>       sstock_semillas.stock =  sstock_semillas.stock + new.bls_ind,
>       sstock_semillas.entrada = sstock_semillas.entrada + new.bls_ind
>   where sstock_semillas.empresa = new.empresa and
>         sstock_semillas.filial = new.filial and
>         sstock_semillas.grano = new.granos and
>         sstock_semillas.variedade = new.variedade and
>         sstock_semillas.id_producto = new.id_producto and
>         sstock_semillas.transgenico = new.transgenico and
>         sstock_semillas.categoria = new.categoria and
>         sstock_semillas.lote = new.lote and
>         sstock_semillas.deposito = new.deposito and
>         sstock_semillas.bloco = new.bloco and
>         sstock_semillas.letras = new.l_letra and
>         sstock_semillas.zaranda = new.zaranda;
>   end
> else
>   begin -- nao existe
>   Insert Into sstock_semillas
>   (ID_SEMILLAS, EMPRESA, FILIAL, SILO, GRANO, VARIEDADE, ID_PRODUCTO,
>    TRANSGENICO, CATEGORIA, LOTE, DEPOSITO, BLOCO, LETRAS, ZARANDA,
>    STOCK, ENTRADA, SAIDA)
>   values
>   (0, new.empresa, new.filial, new.silo, new.granos, new.variedade,
> new.id_producto,
>    new.transgenico, new.categoria, new.lote, new.deposito, new.bloco,
> new.l_letra,
>    new.bls_ind, new.bls_ind, 0 );
>   end
>
> Onde estou erreado ?
>
> --
> Paulinho Sérgio Feix
> ______________________________________________
> 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
>



-- 
- Éderson R. F. Lima
-- Engenharia da Computação / 9º Termo
--- Araçatuba/SP



Mais detalhes sobre a lista de discussão lista