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

Borrar registro

Estas en el tema de Borrar registro en el foro de ASP Clásico en Foros del Web. buenas, hace tiempo hicimo este codigo aqui para borrar los registro que lleven mas de un mes y funcionaba perfectamente. Pero ahora nose porque no ...
  #1 (permalink)  
Antiguo 11/02/2008, 02:45
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 7 meses
Puntos: 2
Borrar registro

buenas,
hace tiempo hicimo este codigo aqui para borrar los registro que lleven mas de un mes y funcionaba perfectamente. Pero ahora nose porque no me va bien y al ejecutarlo me borra todos los registros.

Mi codigo:
<%
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
%>

saludos
  #2 (permalink)  
Antiguo 11/02/2008, 03:33
 
Fecha de Ingreso: febrero-2007
Mensajes: 163
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Borrar registro

Ahi dice que el campo fecha debe ser menor o igual al calculado y deberia ser mayor o igual. No se porque te habra funcionado antes.
  #3 (permalink)  
Antiguo 11/02/2008, 04:55
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 7 meses
Puntos: 2
Re: Borrar registro

claro esta bien el campo fecha tiene que ser menor o = a la variable Fecha_tope para que se borren a los 30 dias.
Pero lo que pasa esque me borra todos.
  #4 (permalink)  
Antiguo 11/02/2008, 21:02
 
Fecha de Ingreso: octubre-2007
Mensajes: 76
Antigüedad: 16 años, 8 meses
Puntos: 1
Sonrisa Re: Borrar registro

Que odna mira prueba con esto
response.write Fecha_tope

strSQL = "delete from anuncio where fecha <= '"&Fecha_tope&"'"


y verifica que la fecha te la imprime correctamente y en el formato correcto
por que puede ser que si hoy es 11 de febrero del 2008 osea 11/02/2008
y la forma de Fecha_tope te lo este mandando 02/11/2008 osea dos de noviembre del 2008

claroq ue te va aborrar todos por que todavia no llega el 11 de noviembre del 2008 :D digo ojala y sea eso

cualquier cosa aqui estamos para ayudarnos saludos :D:D:
  #5 (permalink)  
Antiguo 12/02/2008, 13:00
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 7 meses
Puntos: 2
Re: Borrar registro

vale ya me funciona. mi codigo queda asi por si alguien le interresa.
Mi codigo:
<%
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")&";"
'sqlpnm = "SELECT * FROM anuncio where fecha <= #"&Fecha_tope&"#"
strSQL = "delete from anuncio where fecha <= #"&Fecha_tope&"#"
set rs = oConn.Execute(strSQL)
%>

ahora una cosa mas para borrar dos fotos de una carpeta junto con el registro como seria mi orden es asi pero nose como juntalas.

do while not rs.EOF
foto = rs("Imagen")
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
Set oFile = oFSO.GetFile(Server.MapPath("../web/imagenes/"& foto))
oFile.Delete
rs.movenext
loop

do while not rs.EOF
foto = rs("Imagen2")
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
Set oFile = oFSO.GetFile(Server.MapPath("../web/imagenes/"& foto))
oFile.Delete
rs.movenext
loop
  #6 (permalink)  
Antiguo 12/02/2008, 13:44
 
Fecha de Ingreso: octubre-2007
Mensajes: 76
Antigüedad: 16 años, 8 meses
Puntos: 1
De acuerdo Re: Borrar registro

Que bueno que ya te funciona,, ahora lo que deverias de hacer es poner la solucion a tu problema. para tamien saber nosotros que fue lo que arreglaste o modificaste


y para lo de tu otra pregunta

Código:
do while not rs.EOF
  foto = rs("Imagen")
  foto2 = rs("Imagen2")
  Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
  Set oFile = oFSO.GetFile(Server.MapPath("../web/imagenes/"& foto))
  oFile.Delete
  Set oFile1 = oFSO.GetFile(Server.MapPath("../web/imagenes/"& foto2))
  oFile1.Delete
rs.movenext
loop 
'Despues
sSQL="DELETE FROM TABLE WHERE IdImagen="&IdImagen
oConn.execute(sSQL)
oye una pregunta: no te marca error la linea de

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

ya que una accion de update o delete no se puede almacenar porque no arroja resultados
saludos
  #7 (permalink)  
Antiguo 13/02/2008, 04:31
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 7 meses
Puntos: 2
Re: Borrar registro

mira rene_bustos el problema era poque tenia mal el codigo al borrar los registros mediante las fechas junto con las iamgenes por eso te pregunte como se hace para juntar el codigo ese que tengo de borrar la fecha un mes antes junto con el de borrar las imagenes de la carpeta.
tendria que se asi no?

<%
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)

imagenes = "select * from anuncio where fecha <= #"&Fecha_tope&"#""


set resultado = com.execute (imagenes)
do while not resultado.EOF
foto = rs("Imagen")
foto2 = rs("Imagen2")
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
Set oFile = oFSO.GetFile(Server.MapPath("../web/imagenes/"& foto))
oFile.Delete
Set oFile1 = oFSO.GetFile(Server.MapPath("../web/imagenes/"& foto2))
oFile1.Delete
rs.movenext
loop

%>

pero asi no me funciona
  #8 (permalink)  
Antiguo 13/02/2008, 09:20
 
Fecha de Ingreso: octubre-2007
Mensajes: 76
Antigüedad: 16 años, 8 meses
Puntos: 1
De acuerdo Re: Borrar registro

Que onda mira al parecer ya encontre tu error lo que pasa es que estas eliminando primero los registros de la tabla anuncio y por lo tanto ya no existen las imagenes de ese anuncio para poder buscarlas en la carpeta imagenes
lo que ienes que haceres eliminar primero las imagenes de la carpeta imagenes y despues eliminar los registros de la tabla es decir , aqui te dejo el codigo modificado. ojala y te funcione.
en caso de que suceda un error postealo o.k?
Código:
<%
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")&";"
'primero tienes que sacar los nombres de las imagenes para poder eliminarlas de la carpeta imagenes.
imagenes = "select * from anuncio where fecha <= #"&fecha_tope&"#""
set resultado = com.execute (imagenes)
do while not resultado.EOF
foto = rs("Imagen")
foto2 = rs("Imagen2")
Set oFSO = Server.CreateObject("Scripting.FileSystemObject")
Set oFile = oFSO.GetFile(Server.MapPath("../web/imagenes/"& foto))
oFile.Delete
Set oFile1 = oFSO.GetFile(Server.MapPath("../web/imagenes/"& foto2))
oFile1.Delete
rs.movenext
loop 
'una vez que eliminas todas las imagenes de los anuncios que exceden de un mes de antiguedad, entonces ahora si elimina los registros de las tablas
strSQL = "delete from anuncio where fecha <= #"&fecha_tope&"#"
'Aqui solo se ejecuta el delete y no es necesario instanciar (SET) el resultado a una variable por eso solo se queda oConn.execute(strSQL)
oConn.Execute(strSQL)
%>
Me cuentas como te fue
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

SíEste tema le ha gustado a 1 personas




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