Foros del Web » Programando para Internet » ASP Clásico »

Como eliminar un registro despues de x dias

Estas en el tema de Como eliminar un registro despues de x dias en el foro de ASP Clásico en Foros del Web. Hola Gente. Tengo un BD en Access, y una tabla con 5 campos: Nombre Apellido edad e_mail fecha (el que determina cuando empieza) Estos datos ...
  #1 (permalink)  
Antiguo 06/05/2003, 15:03
 
Fecha de Ingreso: marzo-2003
Ubicación: Av. Grau 1190
Mensajes: 122
Antigüedad: 21 años, 3 meses
Puntos: 3
Pregunta Como eliminar un registro despues de x dias

Hola Gente.

Tengo un BD en Access, y una tabla con 5 campos:

Nombre
Apellido
edad
e_mail
fecha (el que determina cuando empieza)

Estos datos se llena a traves de un formulario via online.



Me gustria saber como puedo hacer que se elimine un registro cuando pasa X dias (X puede ser 1,2,3... 7, etc) , de manera automatica.

Es decir; si el campo fecha tiene el valor 06/05/2003 y X = 6 (dias), tendria que eliminarse automaticamente el dia 16/05/2003 y asi sucesivamente para cada registro que cumpla un criterio, que pasado los X dias se autoelimine.
  #2 (permalink)  
Antiguo 06/05/2003, 15:08
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
tendrias que correr un scheduler que examine tu b de datos en una cierta hora y si la fecha cumple con la condicion eliminar el registro..

una vez trabaje con algo parecido pero el scheduler fue hecho en vbasic ...

lo otro seria agendar en el task del winnt una tarea que abra el explorador enlazado a una direccion en particular donde tengas una pagina que se encargue de revisar tu tabla y realizar el delete con los archivos que cumplan la condicion

saludos.
  #3 (permalink)  
Antiguo 06/05/2003, 15:15
 
Fecha de Ingreso: marzo-2003
Ubicación: Av. Grau 1190
Mensajes: 122
Antigüedad: 21 años, 3 meses
Puntos: 3
No entiendo muy bien, pero podrias explicarme un poco mas, quiza con un ejemplo ?

Mi intencion es dar un servicio en mi pagina de forma que solo sea valido por un tiempo (6 dias) y que luego se autolelimine.

Pienso que se debe dar en el lado del servidor, De forma que la actualizacion se de.

Quiza cada vez que un usario ingresa al formulario de suscripcion o la pagina donde se muestra los registros, ejecute una consulta (automatica) y elimine a todos los registros que cumplen un determinado criterio de tal forma que siempre estara actualizandose.

De ser asi como lo hago?
  #4 (permalink)  
Antiguo 06/05/2003, 15:19
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
tb puede ser de al forma que dices...

la que te sugeri era de agendar una tarea con el task manager que tienen los servidores y ejecutar el explorer con una dir en particular todos los dias a as 00:00 hrs por ejemplo que lo que haga es cargar una pagina que se encargue de revisar los registros y si la fecha es supera 6 dias...eliminarlo...

anda al winnt\task y hay un asistente para agendar tareas...puedes elegir cada el intervalo y la cantidad de veces que se ejecute una tarea x...
  #5 (permalink)  
Antiguo 06/05/2003, 15:29
 
Fecha de Ingreso: marzo-2003
Ubicación: Av. Grau 1190
Mensajes: 122
Antigüedad: 21 años, 3 meses
Puntos: 3
Voya ver como es eso.
Pero viendolo bien, no me quiero complicar demasiado, y me parece que cuando un usuario ingresa a la pagina se ejecuta una consulta(eliminar registros bajo un criterio fecha < now() ) y se actualiza la BD.

Gracias, a ver si me puedes ayudar en este ultimo eh

mejor dicho:
x=7 dias

if day(fecha) + 7 >= day (now()) then
' se elimina el registro

else

' sigue mostrando el registro

que tal eh, a ver si me ayudas a completar el codigo.
  #6 (permalink)  
Antiguo 06/05/2003, 15:32
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
usa la funcion dateadd para comparar fechas

fecha_tope=dateadd("d",-7,now())

'donde rs("fecha") apunta al registro de tu tabla

if rs("fecha") < fecha_tope then
'se elimina el reg
else
' sigue mostrando el reg
end if
  #7 (permalink)  
Antiguo 06/05/2003, 15:40
 
Fecha de Ingreso: marzo-2003
Ubicación: Av. Grau 1190
Mensajes: 122
Antigüedad: 21 años, 3 meses
Puntos: 3
Correcto, ahora bien me ayudas a terminar el codigo completo de la consulta para para que funcione?

Te envio la conexion:
=====
<%
Dim oConn_info, rs_info, SQL_info, info
Dim id_info, titulo, desc_info, fecha 'Para recorrer el vector
id_info = 0
titulo = 1
desc_info = 3
fecha = 4

SQL_info="SELECT * FROM info"
set oConn_info = Server.CreateObject("ADODB.Connection")
oConn_info.Open MM_pcte_STRING ' La conexion se encuentra en la carpeta Connections

set rs_info = oConn_info.Execute(SQL_info)
info = rs_info.GetRows
'Liberamos los objetos ya!!
rs_info.Close
set rs_info = nothing
oConn_info.Close
set oConn_info = nothing
%>
=====
  #8 (permalink)  
Antiguo 06/05/2003, 15:49
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 22 años, 7 meses
Puntos: 0
chiii...no keris naaa...

fecha_tope=dateadd("d",-7,now())

SQL_info="SELECT * FROM info"
set oConn_info = Server.CreateObject("ADODB.Connection")
oConn_info.Open MM_pcte_STRING ' La conexion se encuentra en la carpeta Connections

set rs_info = oConn_info.Execute(SQL_info)

if not rs_info.eof and not rs.bof then
while not rs.eof then
if rs_info("fecha") < fech_tope then
sql="delete from info where id = " & rs("id_tabla)" &";
oConn_info.Execute(sql)
else
'no se ke mas
end if
wend
end if
  #9 (permalink)  
Antiguo 06/05/2003, 15:53
 
Fecha de Ingreso: marzo-2003
Ubicación: Av. Grau 1190
Mensajes: 122
Antigüedad: 21 años, 3 meses
Puntos: 3
Gracias bakanzipp, haz sido de gran ayuda. voya probar el codigo, mañana te comento mas.

Saludos, de paso te invito a visitar una pagina: http://www.perucaliente.com, dame tu apreciacion

Cuidate
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:38.