Atualização em cascata

Firebird

16/08/2005

Tenho duas tabelas, uma é produto e a outra é grade, todas as duas tem o campo Quantidade, que usa o mesmo dominio.

O que eu quero:

QUando fazer um Update na tabela Grade, verificar se houve alteração na quantidade, caso houve, atualizar a tabela Produto.


Sistemald

Sistemald

Curtidas 0

Respostas

Afarias

Afarias

16/08/2005

Use uma Trigger AFTER UPDATE na tabela GRADE para atualizar (update) a tabela PRODUTO.

T+


GOSTEI 0
Sistemald

Sistemald

16/08/2005

tubo ben, fiz aqui a sql, ainda não testei, mas me surgiu uma dúvida, olha só:

No sistema vou fazer um update na tabela Grade, com o seguinte código:

tablegrade.edit;
tablegradeQuantidade.value:=  tablegradeQuantidade.value + valorvendido;
tablegrade.post;


quando eu der o post será executado a Triger, e atualizará a outra tabela.

Minha dúvida é a seguinte:

Se eu der um commit ele salvará tudo?Tanto a tabela grade e a Produto(alterado pela Triger)?

Se eu der um Rollback ele descartará tudo?Tanto a tabela grade e a Produto(alterado pela Triger)?


GOSTEI 0
Afarias

Afarias

16/08/2005

|Se eu der um commit ele salvará tudo?Tanto a tabela grade e a Produto
|(alterado pela Triger)?

sim

|Se eu der um Rollback ele descartará tudo?Tanto a tabela grade e a
|Produto(alterado pela Triger)?

sim



T+


GOSTEI 0
Sistemald

Sistemald

16/08/2005

beleza consegui, fazer, valeu pela dica.

SET TERM ^ ;


CREATE TRIGGER GRADE_BU_ATUALIZAPRODUTO FOR GRADE
ACTIVE BEFORE UPDATE POSITION 0
AS
begin
  UPDATE PRODUTO
  SET PRQUANTIDADE = PRQUANTIDADE + (new.grquantidade - old.grquantidade)
where PRCODIGO = old.grproduto_codigo;
end
^


SET TERM ; ^



GOSTEI 0
POSTAR