[firebase-br] P/Carlos Cantu

HPensador hpensador em gmail.com
Qui Out 4 14:17:03 -03 2007


Boa tarde Carlos! 

Desculpa postar endereçada a você, mais já postei este problema antes e
nenhum colega teve condição de mim ajudar, daí só recorrendo a você.

Tenho uma SP para dar baixa de Cliente e Parceiros (automáticamente ou
por solicitação) - em ambas são feitas 2 atualizações e em uma dessas
atualizações são aterados os valores de 2 campos da tabela - porém não
sei por que cargas d'agua neste caso a alteração só esta ocorrendo em
um dos campos. Abaixo o codigo da SP, qual pecado estou cometendo?

CREATE PROCEDURE BX_CARTEIRA_PARCEIRO (
    justificativa varchar(200))
as
declare variable icodico integer;
declare variable icod_parceiro integer;
declare variable icod_vendedor integer;
declare variable vdatafim date;
declare variable sbaixado varchar(1);
begin
  for select n.codigo,
             n.cod_parceiro,
             n.cod_vendedor,
             n.data_fim,
             n.baixado
      from carteira_parceiro n
      where extract(year from n.data_fim) = extract(year from
current_date)
  into :icodico, :icod_parceiro, :icod_vendedor, :vdatafim, :sbaixado
  do
  begin
     if ((justificativa = '') or (justificativa is null) ) then
        justificativa = 'Baixa automática';
     if ((:vDataFim < current_date) and (:sbaixado = 'N')) then
     begin
       update carteira_parceiro x set x.baixado = 'S',  <--- neste
update são alterados o valor de 2 campos, porém qdo executo
                                x.motivo_baixa = :justificativa
a SP apenas o primeiro campo tem seu valor modifica.
       where x.cod_parceiro = :icod_parceiro
         and x.cod_vendedor = :icod_vendedor;
       update parceiro c set c.cod_vendedor = null
       where c.cod_parceiro = :icod_parceiro;
     end
  end
end






Mais detalhes sobre a lista de discussão lista