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

Borrar registros de BD

Estas en el tema de Borrar registros de BD en el foro de ASP Clásico en Foros del Web. tengo una página en donde me muestra todos los registros de mi Bd, le he puesto un código que me permite borrar de la base ...
  #1 (permalink)  
Antiguo 16/08/2002, 05:06
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 23 años, 3 meses
Puntos: 2
Borrar registros de BD

tengo una página en donde me muestra todos los registros de mi Bd, le he puesto un código que me permite borrar de la base de datos los eventos que hayan excedido de una fecha, el problema es que no me los borra todos, no me permite borrar ni el Id ni la fechas, el código que utilizo es este.
Código:
  <%'Convertimos el formato de fecha al estilo 10/5/2002
Dia=Day(Date)
Mes=Month(Date)
Anio=Year(Date)
Fecha=Dia&"/"&Mes&"/"&Anio

'Con esto borramos los registros que excedan de la fecha Final en 3 días
		FechaFiestas=RS("DateFinal")
		DiferenciaEntreFechafiesta = DateDiff("y", Fecha, FechaFiestas)

		if DiferenciaEntreFechafiesta<-3 then

		'RS("ID")=""
		RS("Description")=""
		RS("Event_Name")=""
		RS("Description")=""
		RS("Location")=""
		RS("Category")=""
		'RS("Date")=""
		'RS("DateFinal")=""

	'Guardamos los cambios
		'RS.Update


		end if
%>
Con esto voy borrando dato a dato
¿Alguien sabe como puedo borrar el registro completo?
un saludo
  #2 (permalink)  
Antiguo 16/08/2002, 05:23
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 23 años, 3 meses
Puntos: 2
Re: Borrar registros de BD

Que clase de borrado es ese amigo??????? de donde lo sacaste???

<center><IMG SRC="http://www.550m.com/usuarios/altolacruz/aprendiz3.gif" ALT="Visitame en AlSurNet.com -- E-Learning E-Commerce Multimedia E-Business--"></center>
  #3 (permalink)  
Antiguo 16/08/2002, 05:38
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 23 años, 4 meses
Puntos: 17
Re: Borrar registros de BD


Y no sería más fácil hacer un borrado SQL normal?
DELETE * FROM tabla WHERE condiciones_necesarias

Joe Tawers,
<font color=blue><u>Web en proceso de construcción</u>[/CODE]
  #4 (permalink)  
Antiguo 16/08/2002, 05:40
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 23 años, 3 meses
Puntos: 2
Re: Borrar registros de BD

Pues sacarlo lo que se dice sacarlo, de ninguna parte, pensaba que se hacía así, de hecho si me borra ciertos campos pero no todos.
He probado con
Código:
 SQL = &quot;DELETE FROM Events WHERE ID LIKE 7&quot;
Set RS = Conn.Execute(SQL)
y si me borra el registro cuyo Id es 7, pero como le especifico en esta consuta que me borre los registros que excedan de la fecha final 3 días???
Puede ser algo así:
Código:
 SQL = &quot;DELETE FROM Events WHERE ID LIKE ('%&quot; &amp; DiferenciaEntreFechafiesta&lt;-3 &amp; &quot;%')&quot;
Set RS = Conn.Execute(SQL)
La verdad es que no lo se, estoy haciendo pruebas y o bien me borra algunos datos, como en el ejemplo de arriba o bien me borra la tabla completa o bien me sale algún error de código del tipo:
ADODB.Recordset error '800a0cc1'

No se encontró el elemento en la colección que corresponde con el nombre o el ordinal pedido.

/navarra/noticias salvapantallas/administracion/admin/view.asp, line 319
Si le pono este código:
Código:
 &lt;%'Convertimos el formato de fecha al estilo 10/5/2002
Dia=Day(Date)
Mes=Month(Date)
Anio=Year(Date)
Fecha=Dia&amp;&quot;/&quot;&amp;Mes&amp;&quot;/&quot;&amp;Anio

'Con esto borramos los registros que excedan de la fecha Final en 3 días
		FechaFiestas=RS(&quot;DateFinal&quot;)
		DiferenciaEntreFechafiesta = DateDiff(&quot;y&quot;, Fecha, FechaFiestas)
		borrado=DiferenciaEntreFechafiesta&lt;-3
		if DiferenciaEntreFechafiesta&lt;-3 then

		Set Conn=Server.CreateObject(&quot;ADODB.Connection&quot;)
Conn.Open dsn

SQL = &quot;DELETE FROM Events WHERE ID LIKE ('%&quot; &amp; borrado &amp; &quot;%')&quot;
Set RS = Conn.Execute(SQL)


		end if
%&gt;
seguro que estoy haciendo alguna barbaridad.
Un saludo
  #5 (permalink)  
Antiguo 16/08/2002, 05:55
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 23 años, 3 meses
Puntos: 2
Re: Borrar registros de BD

yo haria algo asi:

&lt;%'Convertimos el formato de fecha al estilo 10/5/2002
Dia=Day(Date)
Mes=Month(Date)
Anio=Year(Date)
Fecha=Dia&amp;&quot;/&quot;&amp;Mes&amp;&quot;/&quot;&amp;Anio

actual=date
actual-3=DateAdd(&quot;d&quot;, -3, Actual)

Set Conn=Server.CreateObject(&quot;ADODB.Connection&qu ot;)
Conn.Open dsn

SQL = &quot;DELETE * FROM Events WHERE campoFecha&lt;&quot;&amp;actual-3&amp;&quot;&quot;
Set RS = Conn.Execute(SQL)
%&gt;

el DateAdd(&quot;d&quot;, -3, Actual) te da la fecha de hace 3 dias.

ahora te puede tirar problemas con el formato de la variable en la consulta..ya no me acuerdo como era..para fechas



espero te sirve de algo


<center><IMG SRC="http://www.550m.com/usuarios/altolacruz/aprendiz3.gif" ALT="Visitame en AlSurNet.com -- E-Learning E-Commerce Multimedia E-Business--"></center>
  #6 (permalink)  
Antiguo 16/08/2002, 05:56
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 23 años, 3 meses
Puntos: 2
Re: Borrar registros de BD

Ya esta , ya ha salido
Código:
 &lt;%'Convertimos el formato de fecha al estilo 10/5/2002
Dia=Day(Date)
Mes=Month(Date)
Anio=Year(Date)
Fecha=Dia&amp;&quot;/&quot;&amp;Mes&amp;&quot;/&quot;&amp;Anio

'Con esto borramos los registros que excedan de la fecha Final en 3 días
		FechaFiestas=RS(&quot;DateFinal&quot;)
		DiferenciaEntreFechafiesta = DateDiff(&quot;y&quot;, Fecha, FechaFiestas)

		if DiferenciaEntreFechafiesta&lt;-3 then

borrado=RS(&quot;ID&quot;)


		Set Conn=Server.CreateObject(&quot;ADODB.Connection&quot;)
Conn.Open dsn

SQL = &quot;DELETE FROM Events WHERE ID LIKE ('%&quot; &amp; borrado &amp; &quot;%')&quot;
Set RS = Conn.Execute(SQL)


		end if
%&gt;
Creo que estará así bien??
Un saludo
  #7 (permalink)  
Antiguo 16/08/2002, 06:10
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 23 años, 3 meses
Puntos: 2
Re: Borrar registros de BD

Prueba y nos cuentas


<center><IMG SRC="http://www.550m.com/usuarios/altolacruz/aprendiz3.gif" ALT="Visitame en AlSurNet.com -- E-Learning E-Commerce Multimedia E-Business--"></center>
  #8 (permalink)  
Antiguo 16/08/2002, 06:17
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 23 años, 3 meses
Puntos: 2
Re: Borrar registros de BD

En principio parecía que salía, pero me da un error:
ADODB.Recordset error '800a0cc1'

No se encontró el elemento en la colección que corresponde con el nombre o el ordinal pedido.

/navarra/noticias salvapantallas/administracion/admin/view.asp, line 310

Y en la línea 310 está este código
Código:
       &lt;td bgcolor=&quot;#FFFFFF&quot;&gt;&lt;font face=&quot;Verdana, arial&quot; size=&quot;1&quot;&gt;&lt;a href=&quot;edit.asp?ID=&lt;%=RS(&quot;ID&quot;)%&gt;&amp;orderby=&lt;%=orderby%&gt;&amp;page=&lt;%=intPage%&gt;&amp;SearchFor=&lt;%=SearchFor%&gt;&amp;SearchWhere=&lt;%=SearchWhere%&gt;&quot;&gt;Editar&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href=&quot;delete.asp?ID=&lt;%=RS(&quot;ID&quot;)%&gt;&amp;orderby=&lt;%=orderby%&gt;&amp;page=&lt;%=intPage%&gt;&amp;SearchFor=&lt;%=SearchFor%&gt;&amp;SearchWhere=&lt;%=SearchWhere%&gt;&quot;&gt;Borrar&lt;/a&gt;&lt;/font&gt;&lt;/td&gt;
Lo he comprobado y es por el RS(&quot;ID&quot;), pero no sé como hacerlo, he probado de tu forma y también funciona pero me da el mismo error, parece ser que tengo una forma de escribir el código un poco rara, tal vez sea porque comenzé con esto del código por lo más dificil, y las cosas más sencillas se me escapan.
Un saludo
  #9 (permalink)  
Antiguo 16/08/2002, 06:31
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 23 años, 3 meses
Puntos: 2
Re: Borrar registros de BD

Vale ahora si que funciona correctamente
Código:
 &lt;%'Convertimos el formato de fecha al estilo 10/5/2002
Dia=Day(Date)
Mes=Month(Date)
Anio=Year(Date)
Fecha=Dia&amp;&quot;/&quot;&amp;Mes&amp;&quot;/&quot;&amp;Anio

'Con esto borramos los registros que excedan de la fecha Final en 3 días
		FechaFiestas=RS(&quot;DateFinal&quot;)
		DiferenciaEntreFechafiesta = DateDiff(&quot;y&quot;, Fecha, FechaFiestas)

		if DiferenciaEntreFechafiesta&lt;-3 then

borrado=RS(&quot;DateFinal&quot;)



'Con este ejemplo borramos el registro completo, sabiendo que Id son los que han caducado en tres días
		Set Conn=Server.CreateObject(&quot;ADODB.Connection&quot;)
Conn.Open dsn

SQL = &quot;DELETE FROM Events WHERE DateFinal LIKE ('%&quot; &amp; borrado &amp; &quot;%')&quot;
Set RS1 = Conn.Execute(SQL)

		end if
%&gt;

Un saludo amigo
  #10 (permalink)  
Antiguo 16/08/2002, 07:08
 
Fecha de Ingreso: febrero-2002
Ubicación: Navarra
Mensajes: 701
Antigüedad: 23 años, 3 meses
Puntos: 2
Re: Borrar registros de BD

Ahora solo faltaría que una vez terminado est me compactaría la base de datos. He visto este ejemplo por los foros:
Código:
 Function CompactDB(source, Destination)

If trim(source) = &quot;&quot; and trim(Destination) = &quot;&quot; Then
CompactDB = False
Else
Dim DBE
Set DBE = CreateObject(&quot;DAO.DBEngine&quot;)
DBE.CompactDatabase source, Destination
CompactDB = True
End IF
End Function
pero no me funciona, no se que poner en los campos source y destinacion o si tengo que sustituir cada palabra por la ruta donde esta la BD, he encontrado otro muy bueno que funciona muy bien, el problema es que funciona con el filesystem y mi servidor no los admite.
<a href='ir.asp?http://www.aspalliance.com/mbrink1111/compact.asp' target='_blank'>http://www.aspalliance.com/mbrink1111/co...</a>
Alguien sabe alguna otra forma??
Un saludo
  #11 (permalink)  
Antiguo 16/08/2002, 08:45
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Re: Borrar registros de BD

creo que para que funcione la compactación, luego que terminás de eliminar los registros la tenés que lamar así:

Call CompactDB(&quot;NombreBD.mdb&quot;, &quot;NuevoNombreBD.mdb&quot;)
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 14:41.