[firebase-br] duvidas

renato centriscorps em gmail.com
Qui Set 4 10:28:25 -03 2008


Paulo,

Não vejo muito sentido em guardar no banco a quantidade de dias em atraso de
um determinado título. Todo dia tens que rodar, ou agendar, essa rotina.
Seria muito mais prático se você o tivesse como campo calculado.
O barato disso é que o cálculo ocorre somente quando o registro é exibido.

Voltando ao seu código tente fazer assim:

btnDiasAtraso.Enabled := False;
tblTitulos.First; //pra ter certeza que o ponteiro do arquivo está no início

While *NOT* tblTitulos.Eof do //enquanto não chega no final da tabela.
begin
  DtAtual := DataFim.Date;
  DtInic:=tblTitulos.fieldbyname('DataVencimento').AsDateTime;
  Dias := DaysBetWeen(DtAtual,DtInic);
  *tblTitulos.Edit;*
  tblTitulos.fieldbyname('DiasAtrazo').AsInteger:=Dias;
  *tblTitulos.Post;*
  tblTitulos.Next;
end;


Renato.



2008/9/4 Paulo Cesar <pcyz em uol.com.br>

> Bom dia pessoal estou com um problema e não estou conseguindo identificar
> tenho uma tabela que desejo fazer calculos de data no campo e ter o como
> resultados dias em atrazo
>
> fica assim
>
> datainicio-dataatual = dias em atrazo´
>
> consegui fazer o calculo e tudo..so não conseguir fazer o while na
> tabela... ele quebra o while no proximo registro achei muito estranho, esta
> fazendo o calculo somente no registro atual exemplo do codigo.
>
> procedure TfrmAcordos.btnDiasAtrasoClick(Sender: TObject);
> var
>   Dias:Integer;
>   DtInic,DtAtual:TDate;
> begin
>  tblTitulos.Edit;
>  btnDiasAtraso.Enabled:=False;
>  While tblTitulos.Eof do //enquanto não chega no final da tabela.
>  begin
>       DtAtual := DataFim.Date;
>       DtInic:=tblTitulos.fieldbyname('DataVencimento').AsDateTime;
>       btnDiasAtraso.Enabled:=False;
>       Dias := DaysBetWeen(DtAtual,DtInic);
>       tblTitulos.fieldbyname('DiasAtrazo').AsInteger:=Dias;
>       tblTitulos.Next;
>    end;
>    btnDiasAtraso.Enabled:=True;
>   end;
> end.
>
> Como peguei o sistema ja começado, esta com o banco paradox, mas ja estou
> migrando para o banco firibird com os componetes DBEXpress
>
> Alguem pode me ajudar?
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista