Fórum CRIAR PROCEDIMENTOS PARA UMA FUNÇAO DE ATUALIZAÇÃO #2064

21/01/2009

0

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

Responder

Posts

21/01/2009

Wesley Yamazack

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
Responder

Gostei + 0

21/01/2009

Wesley Yamazack

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

Att,

Wesley Yamazack
Responder

Gostei + 0

21/01/2009

Wesley Yamazack

Diogenes,

   A explicação ficou clara ? Foi suficiente ?

  Estamos aguardando seu retorno.

Att,

Wesley Y
Responder

Gostei + 0

22/01/2009

Diogenes Dourado

É 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    
Responder

Gostei + 0

22/01/2009

Wesley Yamazack

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
Responder

Gostei + 0

22/01/2009

Diogenes Dourado

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
Responder

Gostei + 0

22/01/2009

Wesley Yamazack

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
Responder

Gostei + 0

23/01/2009

Diogenes Dourado

Olá   Gostaria de agradeçer e podemos sim fechar, isso vai me ajudar e muito   Grato   Diogenes
Responder

Gostei + 0

23/01/2009

Wesley Yamazack

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

Att,

Wesley Y
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar