Alessandra, A função now() retorna sempre um float, não deve ser comparado com igualdade, pois vc nunca terá dois numeros iguais, pois está embutido data e hora. Ou vc separa com decodedate(dia,mes,ano) - Veja a função certinha - ou faz como eu. (verifico se a datavencimento é menor que now()) pois o ´prazo só está vencido no dia seguinte ao vencimento.
Voce tbem pode truncar a parte decimal e atribuir a parte inteira a um integer, tanto sua data quanto o result da função now() aí sim comparar. lembre-se, mesmo que vc tenha só a data uma variavel datetime sempre gerará um float, se olhar o resultado verá que lá no fim da mantissa sempre terá alguma coisa por ex. 23450,00000000000121, dependendo do hardware e da precisão. se quizer questionar é só me enviar email em pvt. espero ter ajudado. ----- Original Message ----- From: alessandra porto To: lista-del...@yahoogrupos.com.br ; delphi-br@yahoogrupos.com.br Sent: Tuesday, February 16, 2010 11:32 PM Subject: [delphi-br] somar numero inteiro a uma data ajuda Amigos Tentei de varias formas mas a coisa da erro na tabela os campos DTA_PEDIDO = date; NDIAS = Integer; a ideia e somar um certo numero de dias a uma data e comparar com o dia atual e jogar o resultado ao um campo calculado (VENCIDO) procedure TDm.Cds_FinanceiroCalcFields(DataSet: TDataSet); var DATA : Tdate; NDIAS : integer; begin DATA :=strtodate(Cds_FinanceiroDTA_PEDIDO.AsString); NDIAS :=Cds_FinanceiroNDIAS.AsInteger; if (DATA + NDIAS) = now then begin Cds_FinanceiroVENCIDO.AsString :=datetostr(now); end; Já fiz mil e uma tentativas e nada já usei Cds_FinanceiroDTA_PEDIDO.AsDateTime direto na variavel DATA e nada Deve ser simples a solução mas eu não consegui achar Agradeço aos amigos que puderem ajudar __________________________________________________________ Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]