Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-12-2008
Gbyte Gbyte is offline
Miembro
 
Registrado: may 2008
Posts: 75
Poder: 16
Gbyte Va por buen camino
Lightbulb Delphi 7

Hola amigos!
Gracias a ustedes e sacado todas mis dudas, pero nuevamente necesito nuevamente su ayuda.
Un cliente me pidio una aplicación para el control de pacientes en un laboratorio de donaciones de sangre.
Mi problema se radica, en que cuando un hombre luego de hacer una donación, podrá realizarla nuevamente pasando 90 días; una mujer luego de 120 días.
Y la persona que realize mas de 3 donaciones puede delegar un donante, es decir, he diseñado las tablas sin problemas y la aplicación para almacenar los datos, pero como hago para llevar un control temporal de 90 y 120 dias, o sea, una vez registrado el paciente, que se incremente un contador(si es q se utiliza contador o hay otra manera)solo dia tras dia, y cuando la el medico consulta vea si tiene mas o menos de 90 dias, [o 120dias]. Esto lo estoy desarrollando en delphi 7 e InterBase 6.5.
Desde ya muchas gracias.
Responder Con Cita
  #2  
Antiguo 07-12-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Y, ¿cómo diseñaste las tablas? Porque a mi me da la impresión de que más que un problema de delphi, es un problema de diseño. Así, a bote pronto, pienso que debes tener una tabla

donaciones = (id, donador_id, ultima_donacion)

donde ultima_donacion es la fecha de la última vez en que un persona donó. Entonces, si una persona desea donar, tu sistema compara la fecha actual con la fecha de última donación para determinar si ya han pasado los días requeridos.

// Saludos
Responder Con Cita
  #3  
Antiguo 08-12-2008
Gbyte Gbyte is offline
Miembro
 
Registrado: may 2008
Posts: 75
Poder: 16
Gbyte Va por buen camino
Lightbulb Delphi 7

Gracias por responder!
Es verdad estoy trabajando con una sola tabla y coincido en que si una persona desea donar que el sistema compare la fecha actual con la fecha de donacion para ver si pasaron los dias requeridos. Pero como hago para que es el sistema compare y me large el resultado deseado.
Gracias por la atencion.
Responder Con Cita
  #4  
Antiguo 08-12-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
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
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Consulta Delphi 6, Delphi 2005 y Delphi 2006 Leviatan Varios 6 18-08-2007 16:02:08


La franja horaria es GMT +2. Ahora son las 03:43:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi