[firebase-br] P/Carlos Cantu

Paulo Casagrande paulo em sjudas.com.br
Qui Out 4 17:22:33 -03 2007


1) Verifique se o campo motivo_baixa é um varchar(200) !

2) Porque esta usando o x. na update ?


> 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