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

Forma alternativa para borrar mensajes en 5 días

Estas en el tema de Forma alternativa para borrar mensajes en 5 días en el foro de ASP Clásico en Foros del Web. Hola, me gustaría borrar unos mensajes pasados 5 días luego de que fueron escritos. Probando encontré esta forma, que no es lo original, sino era ...
  #1 (permalink)  
Antiguo 26/06/2005, 08:42
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 20 años, 1 mes
Puntos: 9
Forma alternativa para borrar mensajes en 5 días

Hola, me gustaría borrar unos mensajes pasados 5 días luego de que fueron escritos. Probando encontré esta forma, que no es lo original, sino era para ver si funcionaba:

set conexion = Server.CreateObject("ADODB.Connection")
conexion.Open(Application("Conexion"))
set RS = Server.CreateObject("ADODB.RecordSet")
RS.Open "TablonMensajes", conexion, 3, 3
RS.Filter = "IddeNegocio = 1"

Do until RS.EOF
if RS("Fecha") < Now() then
RS.Delete()
RS.Update()
RS.Requery()
else
Response.Write(RS("Mensaje"))
RS.MoveNext
end if
Loop

RS.Close()
conexion.Close()
set RS = nothing
set conexion = nothing

Eso funciona correctamente. Me gustaría saber alguna forma alternativa de hacer esto mismo si es que pueden comentarme.
Un saludo, muchas gracias.
__________________
Add, never Remove
  #2 (permalink)  
Antiguo 26/06/2005, 09:12
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 8 meses
Puntos: 18
Código:
tope = DateAdd("d", -5, date)
conexion.execute "delete from tablonmensajes where fecha<="&tope
me imagino que con esto valdrá.
Un saludo!!!
  #3 (permalink)  
Antiguo 26/06/2005, 10:59
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 20 años, 1 mes
Puntos: 9
claro, pero también tengo que mostrar registros, por eso quiero hacer todo en uno. Teniendo en cuenta esto también, vos lo que me aconsejarías sería hacer esta sentencia, y luego hacer el RS de forma común?.
Saludos!.
__________________
Add, never Remove
  #4 (permalink)  
Antiguo 26/06/2005, 11:44
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 8 meses
Puntos: 18
lo más rápido sería, más o menos:
-cargar rs con .getstring(más rápido, formateo de salida más complicado), o getrows
-cerrar rs
-borrar con delete from
-salida registros.

creo, vaya. seguro que alguien propone más opciones.

Un saludo.
  #5 (permalink)  
Antiguo 26/06/2005, 12:58
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 20 años, 1 mes
Puntos: 9
no había pensado en eso, me parece interesante. El tema me parece que está en el orden no?, osea si primero cargo el RS en memoria y luego borro, al momento en que el usuario entra a la página va a ver por una última vez el mensaje, así que voy a invertir el orden si te parece (luego me comentas), primero borro, luego cargo el RS actualizado sin los registros que se pasaron de esa fecha, y luego los envio al navegador.
Me parece la opción más interesante para lograr esto.
Un saludo Trasgukabi, muchas gracias.
__________________
Add, never Remove
  #6 (permalink)  
Antiguo 27/06/2005, 02:31
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 20 años, 8 meses
Puntos: 18
ah coño, es verdad. en tu primera propuesta primero mirabas si el registro a presentar era antigüo. si lo era, lo borrabas. Y si no lo era, lo presentabas.

me confundí en mi anterior mensaje. Entonces el orden sería:
-borrar con delete from (filtrando con dateadd)
-cargar rs con .getstring(más rápido, formateo de salida más complicado), o getrows
-cerrar rs
-salida registros.

malas lecturas....malas respuestas. Ésto es una verdad universal....

quisiera que todo el mundo supiera que Mariano es el mejor usuario que hay en este foro. pregunta mucho. Sí. Pero plantea discusiones que le sirven de mucho a la comunidad....(estaría muy bien que muchos de los que pueblan estos campos tomaran ejemplo)
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:02.