[firebase-br] SP Não retorna valores...
Zottis
zottissistemas em brturbo.com.br
Sáb Ago 4 11:48:33 -03 2007
Pessoal, criei uma SP que chamo ela no Delphi da seguinte maneira:
With SP_Historico_Caixa do
begin
Close;
ParamByName('DATA_ATUAL').AsDate := DiarioDATA.Value;
PREPARE;
ExecProc;
end;
Só que ela não traz os valores, e no IBExpert funciona, o que estou fazendo
de errado?
Valeu
Zottis
Segue a SP:
SET TERM ^ ;
CREATE PROCEDURE SP_HISTORICO_CAIXA (
data_atual date)
returns (
no_cheques_hoje integer,
total_cheques_hoje numeric(15,2),
no_cheques_vencidos integer,
total_cheques_vencidos numeric(15,2),
no_cheques_geral integer,
total_cheques_geral numeric(15,2),
no_cheques_avencer integer,
total_cheques_avencer numeric(15,2),
saldo_bancario numeric(15,2))
as
declare variable soma_c numeric(15,2);
declare variable soma_d numeric(15,2);
begin
if (:data_atual = current_date) then
begin
select coalesce(sum(CH.valor),0)
from cheques CH
where (CH.ativo ='S' and CH.vencimento = :data_atual)
into :total_cheques_hoje;
select coalesce(count(CH.chequeno),0)
from cheques CH
where (CH.ativo ='S' and CH.vencimento = :data_atual)
into :no_cheques_hoje;
select coalesce(sum(CH.valor),0)
from cheques CH
where (CH.ativo ='S' )
into :total_cheques_geral;
select coalesce(count(CH.chequeno),0)
from cheques CH
where (CH.ativo ='S')
into :no_cheques_geral;
select coalesce(sum(CH.valor),0)
from cheques CH
where (CH.ativo ='S' and CH.vencimento < :data_atual)
into :total_cheques_vencidos;
select coalesce(count(CH.chequeno),0)
from cheques CH
where (CH.ativo ='S' and CH.vencimento < :data_atual)
into :no_cheques_vencidos;
select coalesce(sum(CH.valor),0)
from cheques CH
where (CH.ativo ='S' and CH.vencimento > :data_atual)
into :total_cheques_avencer;
select coalesce(count(CH.chequeno),0)
from cheques CH
where (CH.ativo ='S' and CH.vencimento > :data_atual)
into :no_cheques_avencer;
end else
if (:data_atual < current_date) then
begin
select coalesce(sum(CH.valor),0)
from cheques CH
where (CH.ativo ='S' and CH.vencimento = :data_atual)
into :total_cheques_hoje;
select coalesce(count(CH.chequeno),0)
from cheques CH
where (CH.ativo ='S' and CH.vencimento = :data_atual)
into :no_cheques_hoje;
select coalesce(sum(CH.valor),0)
from cheques CH
where (CH.ativo ='S' )
into :total_cheques_geral;
select coalesce(count(CH.chequeno),0)
from cheques CH
where (CH.ativo ='S')
into :no_cheques_geral;
select coalesce(sum(CH.valor),0)
from cheques CH
where (CH.ativo ='S' and CH.vencimento < :data_atual)
into :total_cheques_vencidos;
select coalesce(count(CH.chequeno),0)
from cheques CH
where (CH.ativo ='S' and CH.vencimento < :data_atual)
into :no_cheques_vencidos;
select coalesce(sum(CH.valor),0)
from cheques CH
where (CH.ativo ='S' and CH.vencimento > :data_atual)
into :total_cheques_avencer;
select coalesce(count(CH.chequeno),0)
from cheques CH
where (CH.ativo ='S' and CH.vencimento > :data_atual)
into :no_cheques_avencer;
end
select coalesce(sum (Mov.valor),0)
from MovimentoCONTA Mov
where (Mov.Tipo ='C' and Mov.Data <= :data_atual)
into :soma_c;
select coalesce(sum (Mov.valor),0)
from MovimentoCONTA Mov
where (Mov.Tipo ='D' and Mov.Data <= :data_atual)
into :soma_d;
saldo_bancario = :soma_c- soma_d ;
suspend;
end^
SET TERM ; ^
GRANT SELECT ON CHEQUES TO PROCEDURE SP_HISTORICO_CAIXA;
GRANT SELECT ON MOVIMENTOCONTA TO PROCEDURE SP_HISTORICO_CAIXA;
GRANT EXECUTE ON PROCEDURE SP_HISTORICO_CAIXA TO SYSDBA;
Mais detalhes sobre a lista de discussão lista