[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