Los Foros de ASPTutor.com
Home | Perfil | Registrarse | Temas Activos | Miembros | Buscar | FAQ
Usuario:
Password:
 Todos los Foros
 ADO
 Compactar Bases de Datos
 Foro Bloqueado  Tema Bloqueado


Autor Temas
Katixa
Starting Member

España
28 Posts
Mensajes - 22 Jul 2002 :  21:19:53  Ver Perfil  Enviar Email  Visit Katixa's Homepage
Hola otra vez,

Veamos... me ha surgido un "tema" algo delicado. Resulta que tengo una base de datos con unos foros, y esta está creciendo desmesuradamente (lleva 2.6Mb). Puede que no parezca demasiado tamaño, y quizás pueda permitirme aun unos 4 ó 5 Mb más, pero preferiría tenerla algo más controlada.

El tema es que aunque yo borre registros, como cualquiera que tenga una mínima idea de bases de datos sabe, el tamaño sigue siendo el mismo. Lo que me interesa es que después de hacer una limpieza de registros inutiles pueda ejecutar una sentencia CompactDatabase.

El problema viene ahora... abro una conexión en el objeto Application del global.asa, de forma que no hay forma de que me pueda bajar el fichero, compactarlo en mi PC y subirlo, al estar siempre la conexión abierta. Podría aprovechar algún momento en el que no haya usuarios, pero la verdad son pocos, siempre hay mínimo 1.

Mi duda es... ¿puedo hacerlo con la conexión abierta? De no ser así... ¿que otras opciones tengo?.

Me interesa bastante este mantenimiento del fichero MDB...

Gracias
Un saludo.

nicolas
New Member

España
74 Posts
Posted - 23 Jul 2002 :  14:03:04  Ver perfil  Enviar e-mail
Pues sí, el tema resulta delicado. Supongo que una cuando hablas del método compactDatabase, te refieres a compactar tu base de datos desde ASP, utilizando las extensiones de ADO, que sería algo así:

bdOrigen= Server.Mappath("prueba.mdb")
bdNueva= Server.Mappath("prueba2.mdb")

Set jro= Server.createObject("jro.JetEngine")

jro.compactDatabase "Data Source=" & bdOrigen, "Data Source=" & bdNueva

Set jro= Nothing

Bueno, pues este método exige que 'bdOrigen' no tenga ninguna conexión abierta, así que previamente deberías cerrar la que tienes a nivel de aplicación. También exige que no exista un fichero con el mismo nombre que el destino, así que queda por resolver el borrar el original y renombrar el compactado (por ejemplo utilizando los 'fso'). Aunque todo esto es más rapido que descargar el .mdb', compactarlo y volverlo a subir, no deja de tener sus problemas. No se si hay otras alternativas... si alguien tiene algo al respecto, será bienvenido.

Nicolás Sánchez Ruiz
ESI BarcelonaInicio Pagina

Katixa
Starting Member

España
28 Posts
Posted - 23 Jul 2002 :  20:47:26  Ver perfil  Enviar e-mail  Visit Katixa's Homepage
Tal como imaginaba...

Quizás tendré que hacer una de las cosas que me había planteado: Cerrar los foros durante 1-2 dias por "mantenimiento" o algo. Modificar el global.asa para que no abra la conexión, borrar todos los registros que no me interesen desde la propia web en el servidor, luego bajarmela, compactarla, y volverla a subir.

Ahora mi duda va por otro lado, en caso de hacerlo asi, y es... ¿podria ejecutar la sentencia de cerrado referenciando a un objeto application desde fuera del global.asa? Suponiendo que si... una vez está hecho el tema, la conexión deberá abrirse de nuevo para que pueda funcionar todo, pero si esta se abre al empezar la aplicación y ya hay usuarios activos... ¿podría crear el objeto conexion para Application ejecutando el mismo codigo que en el evento Application_OnStart pero desde otra hoja?

Si esto fuese posible, pondría solución a este pequeño gran dilema...

Gracias.

Inicio Pagina

nicolas
New Member

España
74 Posts
Posted - 24 Jul 2002 :  11:14:57  Ver perfil  Enviar e-mail
Seguro !
Entiendo que Application_onStart o Application_onEnd, son sólo eventos (el fichero global.asa es su contenedor) desde donde se dispara el codigo, por ejemplo el asignar una conexión a una variable de aplicación. Pero esta asignación puedes establecerla desde cualquier otro punto de la aplicación (desde cualquier otra página de tu web); es otras palabras: una variable 'application' puede asignarse (y reasignarse) en cualquier momento y este contenido pasa a ser visible para todas las sesiones activas.

Nicolás Sánchez Ruiz
ESI BarcelonaInicio Pagina

   
 Foro Bloqueado  Tema Bloqueado
Ir a:
Los Foros de ASPTutor.com Los Foros de ASPTutor.com
Ir al principio de la Página

 Imprimir Tema
 

Descargas de manuales¦ Ejemplos de código ¦ Artículos mas visitados ¦ Envía tu articulo ¦ Foros ¦
  Libro de visitas ¦Crea un enlace con ASPTutor 
 

    © 2001-Hasta hoy  Pedro Rufo Martín  contactar