Tema: Delphi 7
Ver Mensaje Individual
  #4  
Antiguo 08-12-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 28
Delphius Va camino a la fama
Hola Gbyte,
Eso dependerá de como estás trabajando.
A lo hace referencia roman es que primero se puede calcular la diferencia de días tranquilamente y sin problemas en vez de ir "cronomentrando" o actualizando algún campo de la tabla que se haya destinado a llevar la cuenta de días.

Para obtener la fecha (e incluso la hora) del día, siempre y cuando el reloj del sistema esté bien, basta con hacer uso de la función Now. Algo así:

Código Delphi [-]
FechaActual := Now;

Ahora nos queda simplemente consultar en la tabla correspondiente la última fecha o visita de extracción de sangre de la persona. Con SQL se hace fácil. Una opción podría ser:

Código SQL [-]
select top 1 los_registros from la_tabla where (fecha_visita <= :ParamFechaActual) 
and (id_paciente = :ParamIDPaciente) order by fecha_visita DESC

Entonces si leemos el campo correspondiente a la fecha de última visita, podemos hacer la diferencia.

Código Delphi [-]
UltimaVisita := ElQuery.FieldByName('fecha_visita').asDateTime;

Dias := DaysBetween(...);

Pero además, se puede tranquilamente, si el motor de base de datos lo permite, ya de entrada evitarnos hacer nosotros el cálculo y dejarlo para que el motor lo haga. La mayoría de los motores, por no decir todos, tienen funciones internas que permiten determinar el día actual. Por ejemplo tranquilamente puede consultarse las diferencias de día haciendo algo así:

Código SQL [-]
SELECT (CURRENT_DATE - fecha_visita) AS Dias
FROM la_tabla
WHERE....

La cuestión Gbyte es que para ayudarte lo más posible deberás comentarnos mejor tus problemas, dudas, inquietudes. Por empezar saber como estructuras tus tablas.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita