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

Eliminar registro automaticamente por fecha

Estas en el tema de Eliminar registro automaticamente por fecha en el foro de ASP Clásico en Foros del Web. Buenasss Estoy intentando borrar los registros que ya lleven mas de 30 dias y me aparece el siguiente error. Microsoft JET Database Engine (0x80040E07) Data ...
  #1 (permalink)  
Antiguo 12/12/2007, 06:53
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 7 meses
Puntos: 2
Eliminar registro automaticamente por fecha

Buenasss
Estoy intentando borrar los registros que ya lleven mas de 30 dias y me aparece el siguiente error.

Microsoft JET Database Engine (0x80040E07)
Data type mismatch in criteria expression.
/web/fecha3.asp, line 23

mi codigo:
<%
dim sqm
fecha_tope=dateadd("d",-30,date())

set oConn = Server.Createobject("Adodb.Connection")


oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("registrate.mdb")&";"
set resultado = oConn.execute("select * from anuncio")
do while not resultado.eof
ams=resultado("Fecha")

if ams < fecha_tope then

id=resultado("ID")
sqm = ("delete from anuncio where id='"&ID&"'")

oConn.execute(sqm)
response.write(ams)
'response.write(id)

else
response.write("sd")
'response.write(id)
end if

resultado.movenext
loop


%>

Espero sus respuesta.. muchas gracias
  #2 (permalink)  
Antiguo 12/12/2007, 07:40
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 4 meses
Puntos: 8
Re: Eliminar registro automaticamente por fecha

Supongo que habrás probado sin las comillas, tal que así:

sqm = "delete from anuncio where id=" & id
__________________
Kelpie
  #3 (permalink)  
Antiguo 12/12/2007, 09:04
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: Eliminar registro automaticamente por fecha

suip parece ser eso

una pregunta en lugar de leer toda la tabla
y luego recorrerla porque no haces mejor un delete de un solo?????

tu haces un

set resultado = oConn.execute("select * from anuncio")

luego vas recorriendo tota tu tabla hasta encontar los que tenes que eliminar eso hace que tu consulta sea mas pesada - digo -

porque mejor no hacer un

Cita:
delete from anuncio where tu_campo_fecha > = fecha_tope
suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #4 (permalink)  
Antiguo 12/12/2007, 09:13
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 7 meses
Puntos: 2
Re: Eliminar registro automaticamente por fecha

JuanRAPerez probe con la linea esa q me pusiste y me tira este error.

Microsoft JET Database Engine (0x80040E14)
Syntax error (missing operator) in query expression 'Fecha > = '10/12/2007''.
/web/fecha3.asp, line 24

mi codigo modificado segun vos..

<%
dim sqm
fecha_tope=dateadd("d",-30,date())

set oConn = Server.Createobject("Adodb.Connection")


oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("registrate.mdb")&";"
set resultado = oConn.execute("select * from anuncio")
do while not resultado.eof
ams=resultado("Fecha")

if ams < fecha_tope then

id=resultado("ID")
sqm = ("delete from anuncio where Fecha > = '"&fecha_tope&"'")

oConn.execute(sqm)
response.write(ams)
'response.write(id)

else
response.write("sd")
'response.write(id)
end if

resultado.movenext
loop


%>
  #5 (permalink)  
Antiguo 12/12/2007, 10:58
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Eliminar registro automaticamente por fecha

las fechas van entre ##
esto no
Cita:
sqm = ("delete from anuncio where Fecha > = '"&fecha_tope&"'")
prueba esto
Cita:
sqm = ("delete from anuncio where Fecha > = #"&fecha_tope&"#")
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #6 (permalink)  
Antiguo 12/12/2007, 11:16
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 7 meses
Puntos: 2
Re: Eliminar registro automaticamente por fecha

vale Shiryu_Libra era lo de los # y aprte le faltaba esto ' total qda asi..
codigo
sqm = ("delete from anuncio where 'Fecha > = #"&fecha_tope&"#'")
pero ahora el problema es que no me borra las fechas q sean menores a fecha_tope sino que me borra todas.
si me podrias ayudar te lo agradeceria
saludos
  #7 (permalink)  
Antiguo 12/12/2007, 15:16
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Eliminar registro automaticamente por fecha

ok, aclaremos algo antes de continuar

cual es el rango de fechas a eliminar?, desde hoy y 30 dias antes?? o como???

ya que puedes utilizar "between" "and"
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #8 (permalink)  
Antiguo 12/12/2007, 15:38
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 17 años, 3 meses
Puntos: 88
Re: Eliminar registro automaticamente por fecha

segun a lo que lei, algo de esta naturaleza deberia ser lo que estas solicitando
desde hoy a 30 dias antes, eliminalo

Cita:
sqm = "delete from anuncio where Fecha between #" & fecha_tope & "# and #" & date() & "#"
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra
  #9 (permalink)  
Antiguo 13/12/2007, 02:50
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 7 meses
Puntos: 2
Re: Eliminar registro automaticamente por fecha

buenas Shiryu_Libra probe lo ultimo que me dijiste y me aparece este error.

Error Type:
Microsoft JET Database Engine (0x80004005)
Could not delete from specified tables.
/web/fecha3.asp, line 27

mi codigo

<%
dim sqm
fecha_tope=dateadd("d",-30,date())

set oConn = Server.Createobject("Adodb.Connection")


oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("registrate.mdb")&";"
set resultado = oConn.execute("select * from anuncio")
do while not resultado.eof
ams=resultado("Fecha")

if ams < fecha_tope then

id=resultado("ID")
sqm = ("delete from anuncio where Fecha between #" & fecha_tope & "# and #" & date() & "#")

oConn.execute(sqm)
response.write(ams)
'response.write(id)

else
response.write("sd")
'response.write(id)
end if

resultado.movenext
loop


con respecto a lo que me preguntaste yo quiero eliminar los registros que tengan de 30 dias para adelante. por eso le doy a fecha_tope el valor -30.

Saludos
  #10 (permalink)  
Antiguo 13/12/2007, 07:48
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: Eliminar registro automaticamente por fecha

los que quiere borrar son los que llevan 30 o mas dias en la base de datos.


por eso a la fecha de hoy le quita 30 dias
Cita:
fecha_tope=dateadd("d",-30,date())
luego tendria unidamente que borrar los que sean iguales o menores a esa fecha.
que seria como Shiryu te lo explico - con los #

Cita:
sqm = ("delete from anuncio where Fecha > = #"&fecha_tope&"#")
pruebalo asi y dinos que es lo que realmente hace

suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #11 (permalink)  
Antiguo 13/12/2007, 18:43
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 7 meses
Puntos: 2
Re: Eliminar registro automaticamente por fecha

buenas JuanRAPerez probe como me dijiste y me aparece el siguiente error.

Tipo de error:
Microsoft JET Database Engine (0x80040E14)
Error de sintaxis (falta operador) en la expresión de consulta 'Fecha > = #14/11/2007#'.
/web/fecha2.asp, línea 21
  #12 (permalink)  
Antiguo 14/12/2007, 09:16
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: Eliminar registro automaticamente por fecha

ummmmmm

probalo

Cita:
<%
fecha_tope = dateadd("d",-30,date())

set oConn = Server.Createobject("Adodb.Connection")
set rs = Server.CreateObject("ADODB.Recordset")

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="&Server.MapPath("registrate.mdb")&";"

strSQL = "delete from anuncio where fecha <= #"&Fecha_tope&"#"
set rs = oConn.Execute(strSQL)

rs.Close
oConn.Close
set rs = nothing
set oConn = nothing
%>
Suerte
__________________
JuanRa Pérez
San Salvador, El Salvador
  #13 (permalink)  
Antiguo 14/12/2007, 10:39
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 7 meses
Puntos: 2
Re: Eliminar registro automaticamente por fecha

Ya esta JuanRAPerez muchas gracias
  #14 (permalink)  
Antiguo 14/12/2007, 11:19
Avatar de JuanRAPerez
Colaborador
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.393
Antigüedad: 20 años, 7 meses
Puntos: 27
Re: Eliminar registro automaticamente por fecha

oki

feliz navidad jejejej
__________________
JuanRa Pérez
San Salvador, El Salvador
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 23:42.