Fórum clientdataset.eof dentro do while não funciona corretamente #535115
21/10/2015
0
for i:=01 to 05 do
begin
data:=(dia + '/' + mes + '/' + ano);
dsfluxo.DataSet.Insert;
frmdados.cdsFluxo.Open;
frmdados.cdsFluxo.FieldByName('fluxo_dia').AsDateTime:=strtodate(data);
frmdados.sqlPesquisas.Close;
frmdados.cdsPesquisas.Active:=false;
frmdados.cdsPesquisas.Close;
frmdados.sqlPesquisas.Sql.Clear;
frmdados.sqlPesquisas.Sql.Text:='SELECT * FROM CONTASARECEBER WHERE CTRECEB_DATAVENCIMENTO='''+data+'''';
frmdados.sqlPesquisas.Open;
frmdados.cdsPesquisas.Active:=true;
frmdados.cdsPesquisas.Open;
somareceber:=0;
while not frmdados.cdsPesquisas.Eof do
begin
Somareceber:= Somareceber + frmdados.cdsPesquisas.FieldByName('CTRECEB_VALOR').Value;
frmdados.cdsPesquisas.Next;
end;
frmdados.cdsFluxo.FieldByName('fluxo_receber').AsFloat:=somareceber;
frmdados.cdsFluxo.ApplyUpdates(0);
dia:=inttostr(i+01);
Quando o for vale 1 passa blz, quando muda para 2 ele não entra no laço do while porque o clientdataset.eof está true.
Alguém pode me ajudar?
Obrigado!
Rafael Luciano
Curtir tópico
+ 0Post mais votado
21/10/2015
somareceber:=0; frmdados.cdsPesquisas.First; while not frmdados.cdsPesquisas.Eof do
Mateus Ribeiro
Gostei + 1
Mais Posts
21/10/2015
Rafael Luciano
Se alguém puder me ajudar ficarei agradecido.
Gostei + 0
21/10/2015
Total Sistemas
frmdados.cdsPesquisas.Close;
frmdados.cdsPesquisas.Command.Text:='SELECT * FROM CONTASARECEBER WHERE CTRECEB_DATAVENCIMENTO='''+data+'''';
frmdados.cdsPesquisas.Open;
somareceber:=0;
while not frmdados.cdsPesquisas.Eof do
begin
Somareceber:= Somareceber + frmdados.cdsPesquisas.FieldByName('CTRECEB_VALOR').Value;
frmdados.cdsPesquisas.Next;
end;
Gostei + 0
21/10/2015
Total Sistemas
Quanto a estar indo para o .eof... coloca um DBGrid e vai debugando pra ver se está trazendo mais de um registro mesmo na sua query...
Abraços!!
Gostei + 0
21/10/2015
Rafael Luciano
Obrigado pela resposta!!!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)