FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Sql en el activate del formulario?
Necesito que una vez al dia, mi programa compruebe las fechas de todas las entradas de una tabla y si alguna entrada tiene mas de 30 dias y nu determinado estado, necesito que cambiar el estado y poner un campo de esa misma entrada a true.
El tema es que lo hago en el activate del formulario principal y no hace nada, os pego aqui el codigo que he escrito en el activate de la ventana principal. No se si lo que esta mal es el codigo o es que no se puede hace en el activate: with Query do begin with SQL do begin DataModule1.tdemanda.Close; Clear; DataModule1.tdemanda.Open; Add('UPDATE tdemanda set tdemanda.estado=3, tdemanda.hecho=1'); Add('WHERE (tdemanda.fecha+30< :fecha) and (tdemanda.estado=1)'); ParamByName('fecha').AsDate:= date(); Execute; end; end; |
#2
|
|||
|
|||
Muchas gracias, por dedicar un poco de vuestro tiempo a ayudarme, o al menos a intentarlo, que se me ha pasado ponerlo en la pregunta.
|
#3
|
||||
|
||||
¿Qué significa que no hace nada? ¿No pasa por ahí? ¿No se ejecuta?
¿Lo has ejecutado paso a paso? Pon un BreakPoint y comprueba que el código se ejecuta. Independientemente, yo te aconsejaría no colocar ese código en el Activate, ya que es un evento que puede ejecutarse muchas veces (más de las que deseas). Puedes utilizar el OnShow, o poner un Timer para asegurarte de que se ejecuta cada cierto intervalo de tiempo.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
||||
|
||||
El OnActivate se produce cada vez que recibe el foco la ventana, así que puede ejecutarse más de una vez.
Quizás una forma de hacerlos, sea al arrancar la aplicación. Para hacerlo una sola vez al día, puedes guardar en un archivo ini la fecha de la última comprobación. Si esa fecha es menor que la fecha actual, entonces lanzas la consulta.
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#5
|
||||
|
||||
Yo te recomiendo usar un Timer, asi lo programarias para ue se ejecutara cada 24 horas, auqnue es cierto tu evento OnActivate o OnShow de tu formulario tambien es una buena solucion.
|
#6
|
||||
|
||||
porque no pruebas a hacerlo como tarea programada, así te peleas menos con los eventos.
o si usas SQL Server tambien puedes programarlo con el Agente SQL
__________________
self.free; |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Formulario | halizia | PHP | 10 | 02-10-2006 22:13:52 |
Se ve el formulario | jorllazo | Varios | 2 | 25-09-2006 19:11:48 |
Formulario | fevimo | PHP | 3 | 21-09-2006 20:30:32 |
pasar datos de un formulario vista a cualquier formulario | @-Soft | OOP | 2 | 28-09-2004 21:56:01 |
formulario MDI | joanajj | Varios | 5 | 24-07-2004 01:50:37 |
|