Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-04-2007
chipsoni chipsoni is offline
Miembro
 
Registrado: nov 2005
Posts: 75
Poder: 19
chipsoni Va por buen camino
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;
Responder Con Cita
  #2  
Antiguo 24-04-2007
chipsoni chipsoni is offline
Miembro
 
Registrado: nov 2005
Posts: 75
Poder: 19
chipsoni Va por buen camino
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.
Responder Con Cita
  #3  
Antiguo 24-04-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.288
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿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.
Responder Con Cita
  #4  
Antiguo 24-04-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
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.

Código Delphi [-]
if ultimaFechaComprobacion < Date() then
with Query do
begin
with SQL do
begin
  DataModule1.tdemanda.Close; // no debería estar abierta jamás... pero bueno.
  Clear;
  Add('UPDATE tdemanda set estado=3, hecho=1');
  Add('WHERE (fecha+30< :fecha) and (estado=1)');
  ParamByName('fecha').AsDate:= date();
  DataModule1.tdemanda.Execute
end;
end;

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #5  
Antiguo 24-04-2007
Avatar de karlaoax
karlaoax karlaoax is offline
Miembro
 
Registrado: oct 2003
Ubicación: Monterrey
Posts: 280
Poder: 21
karlaoax Va por buen camino
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.
Responder Con Cita
  #6  
Antiguo 24-04-2007
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
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;
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
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


La franja horaria es GMT +2. Ahora son las 17:11:20.


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