[firebase-br] Duvida sobre Trigger

Paulo Sérgo Feix paulinhofeix em gmail.com
Seg Abr 5 17:43:17 -03 2010


Obrigado pelas resposta dos colegas da lista, na verdad o erro foi meu
memso, tinha me esquecido de um campo, na hora da inclusão, valeu o grigado
atodos.

Em 2 de abril de 2010 04:29, Edinho <ed.rodrigo em gmail.com> escreveu:

> 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
> ______________________________________________
> 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
>



-- 
Paulinho Sérgio Feix



Mais detalhes sobre a lista de discussão lista