Se eu entendi direito....

Porque você não coloca uma condição de que quando o valor for null você
atribui zero a variável vfsaldo.

 

Espero ter ajudado, t+!

 

 

 

  _____  

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de fernandoaldrighi
Enviada em: segunda-feira, 28 de maio de 2007 09:01
Para: delphi-br@yahoogrupos.com.br
Assunto: [delphi-br] Procedures no Firebird

 

Tenho uma procedure que ira ler registros
para calcular saldo do cliente (isto funciona)

Mas, se ainda nao existir registros do cliente
o saldo encontrado NAO e´ zero e sim NULL.

Como resolver isto ?
Ou seja, como aparecer zero ao inves da palavra NULL ?

Abaixo a minha Procedure 

begin
viLinha = 0;
Select max(linha) from ContaCorrente
where (CodCli = :CodCli) and (SI = 'S') into :viLinha;

vfdebito = 0;
vfcredito = 0;

Select sum(valor) from contacorrente
where (CodCli = :CodCli) and (Linha >= :viLinha) and (dc = 'D') into
:vfdebito;

Select sum(valor) from contacorrente
where (CodCli = :CodCli) and (Linha >= :viLinha) and (dc = 'C') into
:vfcredito;

vsdc = 'D';
vfsaldo = vfcredito - vfdebito;
if (vfsaldo > 0) then vsdc = 'C';

INSERT INTO ContaCorrente (CodCli, Linha, DtEmissao,
SI, Talao, NroNf, Valor, DC, JD,
Texto1, texto2, CodHist, DtFato, Usuario)

VALUES (:CodCli, :Linha, :DtEmissao,
:SI, :Talao, :NroNf, :vfsaldo, :vsdc, :JD,
:Texto1, :texto2, :CodHist, :DtFato,
:Usuario);

suspend;
end

 



[As partes desta mensagem que não continham texto foram removidas]

Responder a