[firebase-br] RES: RES: Update OR Insert

Felix - SOL Informática felix em solsistemas.com
Sex Jun 21 11:10:37 -03 2013


Walter, gracias.

Fabricio, ficou assim a parte da trigger; se descobrir uma maneira mais
facil eu modifico depois:

        select quantidade from estoque where codigoest = new.codigoest and
codigopro = new.codigopro into :xQuantidade;
        if ( xQuantidade is null ) then
            insert into ESTOQUE (CODIGOEST, CODIGOPRO, QUANTIDADE) 
                 values (NEW.CODIGOEST, NEW.CODIGOPRO, NEW.QUANTIDADE);
        else
            update ESTOQUE E set E.QUANTIDADE = E.QUANTIDADE +
NEW.QUANTIDADE;

Francisco Felix
www.solsistemas.com


-----Mensagem original-----
De: lista [mailto:lista-bounces em firebase.com.br] Em nome de W O
Enviada em: sexta-feira, 21 de junho de 2013 10:56
Para: FireBase
Assunto: Re: [firebase-br] RES: Update OR Insert

Las seudovariables NEW y OLD solamente existen y pueden usarse en los
triggers.

Saludos.

Walter.



2013/6/21 Felix - SOL Informática <felix em solsistemas.com>

> Fabricio,
>
> Grato pela rápida resposta.
>
> Sim, é por trigger na hora da venda, incluindo :
>     IF (UPDATING OR DELETING) THEN
>         UPDATE ESTOQUE SET ESTOQUE.QUANTIDADE = ESTOQUE.QUANTIDADE -
> OLD.Quantidade
>                WHERE ESTOQUE.CODIGOPRO = OLD.CODIGOPRO AND
> ESTOQUE.CODIGOEST
> = OLD.CODIGOEST;
>
> A dúvida é na hora de adicionar a entrada; me parece que o [Update or
> Insert] não reconhece um valor já existente (ESTOQUE.QUANTIDADE +
>  NEW.QUANTIDADE)
>
> Francisco Felix
> www.solsistemas.com
>
>
> -----Mensagem original-----
> De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Fabricio
> Videira
> Enviada em: sexta-feira, 21 de junho de 2013 10:37
> Para: FireBase
> Assunto: Re: [firebase-br] Update OR Insert
>
> Cara não sei como você baixa mas cria uma procedure ou uma trigger ;
> no meu sistema tem um trigger na hora que grava a venda ela dispara e
> acerta o estoque pegando o old.estoque-quantvendida
> P.S. para o histórico do produto todo mês é feito um fechamento e por ele
> pego o estoque inicio do mês para caso tenha que fazer um recalculo.
>
>
> Em 21 de junho de 2013 10:26, Felix - SOL Informática <
> felix em solsistemas.com
> > escreveu:
>
> > Para manter a quantidade do estoque X atualizada, pensei em fazer algo:
> >
> > update or insert into ESTOQUE (CODIGOEST, CODIGOPRO, QUANTIDADE)
> >             values (NEW.CODIGOPRO, NEW.CODIGOPRO, ESTOQUE.QUANTIDADE +
> > NEW.QUANTIDADE);
> >
> > Mas ele não reconhece o Estoque.Quantidade ( caso já existir ) ?
> >
> > Assim, a única maneira é fazer um select prévio e atribuir o valor a uma
> > variável?
> >
> > Francisco Felix
> > www.solsistemas.com
> >
> >
> > ______________________________________________
> > 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
> >
>
>
>
> --
> *
> Att.
>
> Fabrício Videira*
> *Programador Delphi, C#, Java*
> (*(14) 3283-1336 *(*(**14) 9653-5587*
> **develop.fabricio em gmail.com*
> ______________________________________________
> 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
>
>
> ______________________________________________
> 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
>
______________________________________________
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