Programación General > Visual Basic 6.0 e inferiores

 Eliminar Registros En Access

(1/2) > >>

elmango80:
Hola a todos, el problema es el siguiente: Cuando trabajo con bases de datos creadas en Access todo me funciona perfectamente el problema esta en que cada vez el archivo crece de tamaño. Eso en comprensible ya que cada dia se vana añadiendo nuevos registros en las diferentes tablas de la base de datos, ahora bien lo logico seria que en el momento que elimino registros de las tablas la base de datos el archivo (.mdb) disminuyera de tamaño... Pero extrañamente esto no ocurre asi.

Por ejemplo, tengo un archivo cuyo tamaño es de aproximadamente 15Mb y posee mas de 5mil registros en las diferentes tablas, he borrado mas de 2mil registros y el archivo sigue del mismo tamaño.

He llegado a una conclusion, recuerdo que cuando utilizaba VFP y eliminaba registros de una tabla con la sentecia sql el programa marcaba el registro como eliminado, pero el registro segui existiendo dentro de la tabla, es decir eliminaba logicamente el registro mas no fisicamente. Recuerdo tambien que habia que abrir la base de datos de forma exclusiva y realizar una limpieza de la base de datos para que ahora si borrara fisicamente todos los registros marcados como eliminados dentro de la base de dato.

No se si haya que hacer algo parecido dentro de access, en realidad lo he buscado y no lo he encontrado. Preferiria que lo que haya que hacer sea desde VB porque asi no tengo que utilizar el Access para nada y mi programa seria 100% independiente y el mismo se encargaria de realizar la depuracion de la base de datos.

Yo dentro de mis programas utilizo la sentencia sql DELETE para borrar los registros de la base de datos, no se si existe otra forma mejor para hacerlo y que en realidad borre fisicamente los registros y asi el tamaño del archivo disminuya.

Agradeceria la ayuda de todos los que puedan ya que tengo un archivo que ha llegado al catastrofico tamaño de 120Mb y sigue creciendo como una bestia imparable.


------- :angel: ------ o ------ :devil: -------

Del Piero:
Puedes probar los siguiente:

  Ingresa al menu Herramientas de Access, submenu "Utilidades de la Base de

Datos", luego elije "Compactar y reparar base de datos".

Si tu base de datos tiene contraseña tienes que ingresar en modo exclusivo.

ebolo:
Hola a todos, según tengo entendido eso es lo normal en bd de access, cuando eliminas registros, se eliminan pero el tamaño no disminuye en la misma proporción.
A parte de lo dicho por Del Piero, también lo que puedes hacer es crearte otra bd nueva e importar todo, de esta forma mejora mucho el rendimiento de la misma.

Saludos.

cpmario:
Reparar y compactar, o crear una nueva base de datos e importar, funciona de las 2 maneras, personalmente al trabajar en VB6 prefiero reparar y compactar, me parece que es más rápido y seguro.
 :comp:

elmango80:
Gracias por sus respuestas, en primer lugar probe lo que me dijo del piero y eso disminuyo considerablemente el tamaño de la base de datos, el problema esta en que es el usuario que debe de abrir la db en access y realizar el procedimiento, el problema esta en que como les dije eso hace que el programa no sea 100% independiente, ahora no se si existe una forma de hacer lo mismo pero desde vb, osea que sea mi programa y no el usuario el que realice la compactacion de la db.

Lo de crear una nueva db y pasar todos los registros es muy complicado, bueno en lugar de complicado es muy largo y lento, porque manejo tablas que presentan mas de 100mil registros y la idea es que sea algo rapido y eficaz, imaginate pasar 100mil registros uno a uno de una tabla a otra.

Por los momentos lo que estoy haciendo es compactar la db por access pero si alguien sabe como hacer que sea mi aplicacion y no yo el que lo haga se los agradeceria.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa