Access enorme

Estoy haciendo un sistema web con php, el cual halará fotos contenidas en una base de datos access, pero al momento de insertar las fotos como objeto ole, en las opciones le doy "crear desde archivo" y selecciono la opción "vincular" -todo esto en access por supuesto- pero con 10 fotos que voy vinculando que en conjunto pesan como 1 mb, cuando quiero ver el tamaño de la base de datos, esta va por los 30 mb!, ¿Qué es lo que está pasando? ¿Cuál seria la mejor forma de poner fotos en una base de datos access sin que esta crezca tanto?, también voy a estar "halando" estas fotos desde visual basic para hacer la otra parte del sistema.

4 Respuestas

Respuesta
1
Tengo dos soluciones para ti:
1. Para guardar las imágenes usa archivos jpg que opcupan muchísimo menos espacio que los bmps... con esto no tienes que modificar nada de lo que ya tienes programado...
2. En vez de guardar la imagen en la base de datos, solo guarda la ruta al archivo de imagen... el inconveniente de esta solución es que podrían borrarte los archivos del disco, pero puedes controlarlo con los permisos de NT o similar...
Respuesta
1
Como veras el access crece geométricamente peor si es con gráficos, la alternativa es compactar la base de datos periódicamente para que baje de tamaño... como lo estas haciendo "vinculando" es la mejor manera .. hay otra que es "importando" pero te ocuparía más espacio...
¿Pero cómo compacto esa base de datos?
En el mismo access.. hay una opción para compactar.. esa base e datos.. si lo quieres hacer vía... programación visual basic... tienes que emplear el método compact database...
Respuesta
1
Los objetos que se cargan a un campo de tipo image, binario o de otro nombre en otro manejador de bases de datos siempre hacen crecer en forma enorme el uso de la base de datos, para lo cual a veces existe la necesidad de realizar una carpeta especial que solo contenga imágenes en tu servidor de web y en access solo darle la dirección para que de ahí cualquier forma de acceso que tengas, web o visual la accese y presenta la imagen requerida.
Respuesta
1
Por alguna razón que nunca he sabido, Access descomprime las imágenes al guardarlas. Supongo que tus fotos son jpg o gif, pero access las guarda como mapas de bits descomprimidos, lo que dispara el tamaño en poco tiempo.
Lo que suelo hacer en esos casos es tener una carpeta imágenes en mi sitio Web y en la base de datos solo guardo el nombre de la foto. Después en la página, en el código ASP, tomo el valor del campo de la base de datos para referirme a la foto en cuestión que ya se que estará en la carpeta imágenes. Supongo que no sera muy distinto en php.
Una muy buena respuesta amigo, muchas gracias, pero por cierto, ¿cómo te referís a la foto en asp?
Pues así.
<p><img border="0" src="<%=Server.HTMLEncode(rs("foto"))%>"></p>
En estos momentos no lo tengo delante y no recuerdo si va con comillas o sin ellas. Puede que sea así:
<p><img border="0" src=<%=Server.HTMLEncode(rs("foto"))%>></p>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas