Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Comparación de Fechas (https://www.clubdelphi.com/foros/showthread.php?t=48439)

silver07 25-09-2007 15:43:44

Comparación de Fechas
 
Hola a Todos, estoy trabajando en un sistema en el cual tengo una tabla llamada "actividades", donde tengo un campo llamado "Estatus", por el cual guardo las siguientes informaciones (Pendiente, Finalizada y Nulo) y un campo llamado "FechaFin", en este registro las fechas futuras donde terminara la actividad o el día futuro donde se realizará. El asunto es que no sé como hacerle para que en el campo estatus de forma automática me grabe "Finalizada" una vez la Fechafin sea mayor a la registrada, he estado buscando en internet pero si éxito. Un ejemplo de esto sería algo más o menos como esto::o

Si creo una actividad con fecha para el 20/10/2007 que una vez pasada esta fecha, como 21/10/2007 se registre como "Finalizada".


Espero haberme explicado bien, muchas gracias anticipada...

rodrigodeoz 25-09-2007 17:36:02

Mira es algo muy sencillo, tendrias que implementar un codigo que te haga una busqueda por fecha, que seleccione y actualize todos los registros que esten en estatus=pendiente y que la fecha sea menor a fecha actual, mira seria asi:

UPDATE actividades SET Estatus='Finalizada' where FechaFin<:fecha and Estatus='Pendiente';

silver07 25-09-2007 17:51:11

Asunto
 
Disculpa mi ignorancia, como novato al fin que soy, dónde habría de colocar esa sentecia, en algún evento del form , la tabla, etc?

Muchas gracias por tu tiempo...

Caral 25-09-2007 18:52:27

Hola
La logica dice que si buscas que se haga en automatico, este deberia estar en el from create, para que revise la tabla y la actualice al iniciar el programa, otra seria hacerlo en un boton, un timer etc, etc.
Saludos

rodrigodeoz 25-09-2007 20:28:13

Cita:

Empezado por silver07 (Mensaje 233659)
Disculpa mi ignorancia, como novato al fin que soy, dónde habría de colocar esa sentecia, en algún evento del form , la tabla, etc?

Muchas gracias por tu tiempo...

Como comento Caral puedes ponerla en el meto oncreate del Form pero yo te recomiendo lo pongas en el onshow del form

silver07 26-09-2007 05:34:32

Asunto
 
Disculpa las molestias, pero no me funciona.... no me permite compilar el programa

Lo coloque de esta forma en el eveto [OnShow] del form, luego lo probé en el evento [OnCreate] del form y tambien utilice un Timer y nada:

Código Delphi [-]
UPDATE Dmodulo.tblactividades SET estatus='FINALIZADA' where FechaFin<:fecha and estatus='PENDIENTE';

y me presenta el siguiente error:

Cita:

[Error] RegistroActividades.pas(102): Missing operator or semicolon
[Error] RegistroActividades.pas(102): Statement expected, but expression of type 'TADOTable' found
[Fatal Error] Sisconem.dpr(21): Could not compile used unit 'Formularios\RegistroActividades.pas'
Acaso me faltó algo?:confused:

rodrigodeoz 26-09-2007 17:43:05

Cita:

Empezado por silver07 (Mensaje 233882)
Disculpa las molestias, pero no me funciona.... no me permite compilar el programa

Lo coloque de esta forma en el eveto [OnShow] del form, luego lo probé en el evento [OnCreate] del form y tambien utilice un Timer y nada:


Código Delphi [-]
UPDATE Dmodulo.tblactividades SET estatus='FINALIZADA' where FechaFin<:fecha and estatus='PENDIENTE';





y me presenta el siguiente error:



Acaso me faltó algo?:confused:

por que mejor no utilizas un componente Query o ADOQuery no se con que componentes estas trbajando y le pones la consulta en la propiedad SQLstring y donde lo mandes a llamar la pones
Código Delphi [-]
   Dmodulo.query.params.parambyname('fecha').value:=now;
   Dmodulo.query.Execsql;
 
esto es para un componente Query, el codigo siguiente es para un componente ADOQuery
 
   Dmodulo.ADOquery.parameters.parambyname('fecha').value:=now;
   Dmodulo.ADOquery.Execsql;


La franja horaria es GMT +2. Ahora son las 01:38:26.

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