[firebase-br] trigger para editar pedidos

Andrei Luís compuvale.software em gmail.com
Seg Set 3 14:51:20 -03 2007


Reijanio,

É só adaptar aquelas duas SQLs que te passei.

[]
Andrei

Em 03/09/07, Reijanio Nunes Ribeiro<rnribeiro em gmail.com> escreveu:
> da pra me passar a sintasse dessa trigger entaum
>
> Em 03/09/07, Magno Machado <magnomp.gprs em gmail.com> escreveu:
> >
> > >
> > > Só depois desse commit, na aplicação, é que serão disparadas as
> > > triggers do banco
> >
> > Acabei de fazer um teste aqui, e a trigger é executada assim que o
> > comando(insert/update/delete) é enviado para o sgbd, antes do commit.
> > É claro que se você não confirmar a transação, as alterações feitas pelas
> > triggers também não serão confirmadas.... Mas a execução se dá
> > independente
> > do commit, ao que parece.
> >
> >
> > Em 03/09/07, Andrei Luís <compuvale.software em gmail.com> escreveu:
> > >
> > > Reijanio,
> > >
> > > Endossando o que o Rubem já te falou: você está um pouco equivocado
> > > com o conceito de triggers. A trigger só é disparada qdo você comita a
> > > transação. Veja:
> > >
> > > Na aplicação Delphi:
> > >
> > > qryCliente.Insert;
> > >
> > > {digita os dados nos edits}
> > >
> > > qryCliente.Post;
> > >
> > > qryCliente.ib_Transaction.Commit;
> > >
> > > Só depois desse commit, na aplicação, é que serão disparadas as
> > > triggers do banco: primeiro as before insert e depois as after insert.
> > > Para trigger before/after update é a mesma coisa.
> > >
> > > 2 opções para fazer o que você quer:  Rodar SQL pelo Delphi ou montar
> > > uma Stored Procedure e chamar rodar essa SP.
> > >
> > > 1 - Primeiro você roda: Insert into itensPedidosTemporaria Select *
> > > from itensPedidos where pedido_id=1234
> > >     E depois: Delete from itensPedidos where pedido_id=1234
> > >
> > > 2 - montar uma SP com as duas instruções acima, e que receba como
> > > parâmetro o parâmetro pedido_id
> > >
> > > []
> > > Andrei
> > >
> > >
> > > Em 03/09/07, Reijanio Nunes Ribeiro<rnribeiro em gmail.com> escreveu:
> > > > façamos assim estou apanhando pra criar uma trigger veja essa sintase
> > e
> > > a
> > > > corrija então:
> > > >
> > > > CREATE trigger edita_pedido for pedidos
> > > > active before update position 0
> > > > AS
> > > > begin
> > > >   /* Trigger text */
> > > >   insert into itens_pedidos_temp where IDPED =: old.idped;
> > > >   delete from itens_pedidos where IDPED =: old.idped;
> > > >
> > > > end
> > > >
> > > > so te ressaltando q n tenho costume de usar triggers e na verdade tbm
> > n
> > > > gostava muito da ideia mais ta dando erro entaum preciso tentar dessa
> > > forma
> > > >
> > > > Em 03/09/07, Rubem Nascimento da Rocha <djpardalrocha em hotmail.com>
> > > escreveu:
> > > > >
> > > > >
> > > > > Companheiro, com toda a certeza, retruco que quem está equivocado é
> > > você.
> > > > > Não existe execução de trigger no lado cliente, onde você pode
> > > programar a
> > > > > execução de uma trigger do banco de dados através de um evento de
> > > clique de
> > > > > botão. A execução de uma trigger só ocorre de acordo com o que eu já
> > > > > expliquei.
> > > > >
> > > > > Outra coisa, quando vc edita um registro em uma aplicação cliente,
> > as
> > > > > regras que regem essa operação são determinadas pela aplicação
> > > cliente, ou
> > > > > seja, no momento da edição de um registro não existe interação
> > alguma
> > > com o
> > > > > banco de dados, de forma que essa edição possa ser sinalizada e isso
> > > > > disparar uma trigger. Isso não existe!
> > > > >
> > > > > A interação com o banco de dados só vai ocorrer quando vc for
> > > > > submeter/enviar/'commitar'/etc. os seus dados ao banco de dados após
> > a
> > > > > edição do registro.
> > > > >
> > > > > Vc ainda está equivocado!
> > > > > Sds.
> > > > > > Date: Mon, 3 Sep 2007 09:00:07 -0300> From: rnribeiro em gmail.com>
> > To:
> > > > > lista em firebase.com.br> Subject: Re: [firebase-br] trigger para
> > editar
> > > > > pedidos> > brother acho q quem n entendeu foi vc estou querendo uma
> > > trigger
> > > > > pra editar> uma tabela so q essa ediç~~ao vai ser chamada através de
> > > um
> > > > > botão como em> todos sistema existe essa opção, quero q ela execute
> > > essa
> > > > > ação no momento q> foi feita a edição da tabela> > Em 03/09/07,
> > Rubem
> > > > > Nascimento da Rocha <djpardalrocha em hotmail.com> escreveu:> >> >> >
> > > Trigger
> > > > > disparada ao clicar de um botão? Meu caro, acho que vc está meio> >
> > > > > equivocado com a explicação de sua dúvida.> >> > Uma trigger só é
> > > disparada
> > > > > de dentro do banco de dados quando um evento de> > manutenção de
> > dados
> > > > > (INSERT, UPDATE ou DELETE) vai ocorrer, e ainda assim a> > trigger
> > > pode ser
> > > > > programada para ser disparada antes(BEFORE) ou após(AFTER)> > a
> > > ocorrência
> > > > > do evento. Uma trigger não pode ser executada por uma aplicação> >
> > > cliente.
> > > > > Alias, em SGBD algum isso é possível> >> > Explique melhor sua
> > > dúvida.> >
> > > > > Sds.> > > Date: Mon, 3 Sep 2007 08:48:42 -0300> From:
> > > rnribeiro em gmail.com>
> > > > > To:> > lista em firebase.com.br> Subject: [firebase-br] trigger para
> > > editar
> > > > > pedidos>> > > pessoal poderiam me dar uma força com isso perciso de
> > > uma
> > > > > trigger q ao>> > clicar n botão de editar de meu programa ela copie
> > os
> > > itens
> > > > > do pedido pra>> > tabela temporaria e delete os mesmo da tabela
> > > definitiva
> > > > > mais n tenho ideia>> > de como fazer isso.> > se puderem me ajudar
> > > ficaria
> > > > > muito grato> > trabalho> > com 3 tabela pra isso> pedidos>
> > > itenspedidos>
> > > > > itenspedidostemporaria>> >




Mais detalhes sobre a lista de discussão lista