CRIAR PROCEDIMENTOS PARA UMA FUNÇAO DE ATUALIZAÇÃO

21/01/2009

Bom dia   Estou desenvolvendo um sistema em delphi e dbExpress e Firebird e gostatiria de saber como faço para montar um trigger ou procedimento para atualiza o banco de dados com as seguintes informações   existe 4 campos na tabela sendo que:   Codigo  - planejado - executado - diferença   Gostaria de saber como faço para que no campo  diferença seja atualizado quando preenchemos  na coluna executado, tem que ser como a explicação abaixo       planejado             executado       diferença    01                          02                  +1    02                          01                   -1    02                          02                     0       pois não sei com fazer este tipo de procedimento   Grato   Diogenes      
Diogenes Dourado

Diogenes Dourado

Curtidas 0

Respostas

Wesley Yamazack

Wesley Yamazack

21/01/2009

Você quer fazer isso quando os registros forem inseridos ou atualizados ?


SE FOR INSERT, INSIRA UMA TRIGGER NO BEFORE INSERT, DESTA TABELA. E COLOQUE O CODIGO ABAIXO

UPDATE FROM TABELA
SET DIFERENCA = PLANEJAMENTO - EXECUTADO
WHERE
CODIGO = NEW.CODIGO


SE FOR UPDATE. INSIRA UMA TRIGGER NO BEFORE UPDATE, DESTA TABELA. E COLOQUE O CODIGO ABAIXO

UPDATE FROM TABELA
SET DIFERENCA = PLANEJAMENTO - EXECUTADO
WHERE
OLD.CODIGO

Att,

Wesley Yamazack
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

21/01/2009

Olá Diogenes, na instrução SQL favor desconsiderar a palavra FROM

Att,

Wesley Yamazack
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

21/01/2009

Diogenes,

   A explicação ficou clara ? Foi suficiente ?

  Estamos aguardando seu retorno.

Att,

Wesley Y
GOSTEI 0
Diogenes Dourado

Diogenes Dourado

21/01/2009

É para quando for iserir um registro na coluna executado, pois a equipe de engenharia que ira alinentar o sistema ], pois ele que se tenho os sinais de "+" na frente iqual ao sinal de negativo e não saei fazer isso pois numero não aceita sinal de positivo    
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

21/01/2009

Olá Diogenes,
  Você não precisa  colocar sinal em numero positivo, só irá dar negativo quando o resultado for menor do que 0(Zero). Para isso basta você colocar a trigger, como mostrada anteriormente.

Att,
Wesley Y
GOSTEI 0
Diogenes Dourado

Diogenes Dourado

21/01/2009

Deu certo, gostaria de saber como faço para quando as duas colunas forem igual, tem que ter o resultado igual a 0   Grato   Diogenes
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

21/01/2009

Diogenes,
  Bom partindo do principio, que um menos o outro seja a diferença, se um for igual ao outro eles serão 0(Zero). Por via das dúvidas, segue o código abaixo. Gostaria de saber se com esta duvida esclarecida podemos fechar o chamado.

UPDATE FROM TABELA

SET DIFERENCA = 0

WHERE PLANEJAMENTO = EXECUTADO

Att,

Wesley Y
GOSTEI 0
Diogenes Dourado

Diogenes Dourado

21/01/2009

Olá   Gostaria de agradeçer e podemos sim fechar, isso vai me ajudar e muito   Grato   Diogenes
GOSTEI 0
Wesley Yamazack

Wesley Yamazack

21/01/2009

Diogenes, Bom dia. Sempre que precisar estaremos a disposição.

Att,

Wesley Y
GOSTEI 0
POSTAR