Domingo 22 de Diciembre de 2024, 20:18
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Porque???
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Porque??? (Leído 2207 veces)
Kev
Miembro HIPER activo
Mensajes: 654
Porque???
«
en:
Miércoles 24 de Marzo de 2004, 17:25 »
0
Hola a todos, mi pregunta es la siguiente:
Tengo una aplicacion donde utilizo una Base de datos (MSAcces) que la uso como auxiliar para enlazar a un reporte, es decir, cada vez que envio a imprimir, primero vacio todas las tablas de la BD y leugo lleno las tablas de la base de datos auxiliar y luego llamo al reporte (Crystal reports) para que utilize los datos de la BD auxiliar, el programa me funciona muy bien solo hay un problema, que recien me di cuenta, la base de datos va creciendo (ocupaba unos cuantos Kb y luego ocupo varios, demasiados, para su contenido), es decir es como si la BD estaria almacenando todos los datos de todas las veces que mande a imprimir, pero al revisarla no es asi, la BD solo contiene los datos de la ultima vez que se envio a imprimir, no se que es lo que esta pasando.
Alguien me puede ayudar, o dar alguna sugerencia de como resuelvo esto?
Gracias de antemano
Tweet
La teoria es asesinada tarde o temprano por la experiencia
Albert Einstein
Kev - 3 DCE
-----------------------------------------------------
Articulos:
Convertir texto a imagen en ASP.NET
Trabajando con el Global.asax
Brroz
Miembro de PLATA
Mensajes: 1058
Re: Porque???
«
Respuesta #1 en:
Miércoles 24 de Marzo de 2004, 17:31 »
0
Hola Kev.
Lo que te ocurre es que el espacio de los registros deleteados en la bd sigue ocupando espacio. Para solucionarlo
compacta la base de datos
.
Chao.
Brroz
Miembro de PLATA
Mensajes: 1058
Re: Porque???
«
Respuesta #2 en:
Miércoles 24 de Marzo de 2004, 17:39 »
0
Hola de nuevo.
Con una referencia a DAO:
Código: Text
DAO.CompactDatabase "DbOrigen.mdb" , "DbDestino.mdb"
La bd no se puede compactar sobre si misma, pero luego la copias y listo.
Si usas ADO, ahora mismo no sé como hacer esto, tendría que buscarlo.
Otra posibilidad es usar la automatización de Access y usar el objeto DoCmd de la base de datos.
Suerte.
Kev
Miembro HIPER activo
Mensajes: 654
Re: Porque???
«
Respuesta #3 en:
Miércoles 24 de Marzo de 2004, 23:42 »
0
Muchas gracias por las respuestas, pero estoy usando ADO, alguien me podria explicar un poco mas eso de compactar la base de datos?
* Hay alguna forma de borrar una tabla sin que los datos anteriores continuen, todo esto mediante ADO.
Gracias de antemano
La teoria es asesinada tarde o temprano por la experiencia
Albert Einstein
Kev - 3 DCE
-----------------------------------------------------
Articulos:
Convertir texto a imagen en ASP.NET
Trabajando con el Global.asax
Brroz
Miembro de PLATA
Mensajes: 1058
Re: Porque???
«
Respuesta #4 en:
Martes 11 de Enero de 2005, 17:27 »
0
Hola Kev.
Ha pasado tiempo, pero hoy viendo un antiguo proyecto me acordé del tema este. Aquí tienes código para compactar una base de datos sin usar DAO.
Código: Text
Dim je As Object
Set je = CreateObject("JRO.JetEngine")
je.CompactDatabase "Data Source=C:\Ruta\DbOrg.mdb" _
& ";Data Source=c:\Ruta\DbDest.mdb;"
Suerte.
cpmario
Miembro HIPER activo
Mensajes: 629
Re: Porque???
«
Respuesta #5 en:
Martes 11 de Enero de 2005, 23:04 »
0
Otra manera sería, crear una base de datos nueva (con código vb), eliminando la anterior, cada vez que necesites.
O tener una base de datos vacía de respaldo. Eliminas la que tiene datos, y efectúas una copia de la base datos vacía, cambiándole el nombre que necesitas.
Brroz
Miembro de PLATA
Mensajes: 1058
Re: Porque???
«
Respuesta #6 en:
Miércoles 12 de Enero de 2005, 09:38 »
0
Lo malo de lo que dices, cpmario, es que... ¡ ELIMINAS LOS DATOS DE LA BD !
y estoy seguro que poca gente deseará tal cosa.
Chao.
cpmario
Miembro HIPER activo
Mensajes: 629
Re: Porque???
«
Respuesta #7 en:
Jueves 13 de Enero de 2005, 02:51 »
0
Bueno, es lo que al parecer Kev desea cuando dice:
Citar
primero vacio todas las tablas de la BD
Uso el método de eliminar la base de datos, y crearla de nuevo, le añado los datos y envío a hacer un reporte. Claro esto solo en los casos en que según yo, no es posible hacerlo de otra manera.
Brroz
Miembro de PLATA
Mensajes: 1058
Re: Porque???
«
Respuesta #8 en:
Jueves 13 de Enero de 2005, 09:20 »
0
Tienes toda la razón tron. Sólo tenía en la cabeza indicarle a kev como compactar una db sin usar referencias a DAO y me olvidara del caso concreto, pero como este tema tiene tanto tiempo y lo que quedó pendiente fué el tema de cómo compactar... pos eso.
Chao.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Porque???