Erro com comando SQL

Delphi

22/10/2013

no Delphi 7 eu usava o seguinte comando SQL:

with query do
begin
close;
sql.clear;
sql.add('select sum(valorcredito) as vrtotal from credito where datadebito >= :dt1 and datadebito <= :dt2 and valorcredito is not null');
parambyname('dt1').asstring:= dt1.text;
parambyname('dt2').asstring:= dt2.text;
open;
end;


o codigo funciona normal no Delphi 7, porém ao usar no XE4, o resultado é sempre nulo.

alguem sabe o que está havendo?

uso ZEOS para me conectar ao banco de dados firebird.

abraços.
Italo Pereira

Italo Pereira

Curtidas 0

Respostas

Alessandro Yamasaki

Alessandro Yamasaki

22/10/2013

Uma pergunta. Existem dados neste SQL? Talvez um COALESCE resolva seu problema. Faça um teste

Exemplo

SELECT sum(coalesce(valorcredito,0)) as vrtotal
FROM credito
WHERE datadebito >= :dt1 and datadebito <= :dt2
GOSTEI 0
Italo Pereira

Italo Pereira

22/10/2013

Resolvi assim:
with query do
begin
close;
sql.clear;
sql.add('select sum(valorcredito) as vrtotal from credito where datadebito >= :dt1 and datadebito <= :dt2 and valorcredito is not null');
parambyname('dt1').asdate:= strtodate(dt1.text); //alterei aqui
parambyname('dt2').asdate:= strtodate(dt2.text); //e aqui
open;
end;


nao sei porque, ele nao reconhece da outra forma, mas valew pela dica.
GOSTEI 0
Alessandro Yamasaki

Alessandro Yamasaki

22/10/2013

Q bom conseguiu resolver.
GOSTEI 0
POSTAR