Ver Mensaje Individual
  #6  
Antiguo 12-12-2005
Avatar de User_baja1
User_baja1 User_baja1 is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Reputación: 20
User_baja1 Va por buen camino
Hola dtomeysoto,
respecto a la opcion 1, yo no le veo ningun problema, es más, sql server permite almacenar:

1. una base de datos de hasta 1,048,516 TB3
2. cada columna de una tabla se puede almacenar hasta 2 GB.


por lo que tienes espacio de sobra, ademas de esta forma te olvidas de la concurrencia y de los permisos ya que lo gestionas todo desde la DB.


Supongo que deberias de hacer un calculo de los limites de tu sistema, es decir, cuantos documentos se van a subir, de que tamaño medio y conseguir una prevision de tamaño para 10, 20 o 25 años. De esta forma puedes ver el tamaño teorico que tomaria. Llegado el limite, pues o bien creas mas columnas en la tabla o bien creas nuevas tablas o nuevas db's, pero de aqui 10,20 o 30 años habran pasado muchas cosas (hasta igual has pagado la hipoteca) ... y ya habrá alguien mas joven que tu que haga estos cambios.



El tipo de datos debe ser image y lo de guardarlo comprimido podrias usar un componente zip para enviar los datos mas pequeños a la db. O bien no usar nada y almacenarlo tal y como esté (depende del tamaño y graficos de los documentos).


Para gestionarlo desde delphi:

Código:
   
 TBlob(tabla.fieldByName('documento')).LoadFromFile
 TBlob(tabla.fieldByName('documento')).LoadFromStream
 
 TBlob(tabla.fieldByName('documento')).SaveToFile
 TBlob(tabla.fieldByName('documento')).SaveToStream
para ver el tamaño real de lo que almacenas:

Código:
  TBlob(tabla.fieldByName('documento')).BlobSize






Cita:
Empezado por dtomeysoto
Amigos, debo de hacer una aplicación en Delphi 7 y usar SQL Server 2000. Los usuarios que van a trabajar con esta aplicación (Sistema Informativo) tienen derecho a poner información de un area o tema determinado con una frecuencia determinada (diaria, semanal, quincenal, mensual, etc), la información puede ser un archivo de word, excell, etc.
Estaba pensando en como guardar la información que va a poner cada usuario del sistema y se me han ocurrido 2 formas:
  1. en la tabla donde voy a guardar las informaciones de los usuarios tener un campo (no se todavía de que tipo) donde pueda yo almacenar el fichero que el usario quiere subir al sistema informativo, yo me aseguraría que estubiera compactado para que fuera mas pequeño.
  2. en la misma tabla en vez de guardar el archivo en un campo guardar la referencia al archivo, para esto me aseguraría de tener una estructura de directorios capaz de tener organizada la información por temas.
si escojo la primera variante no sabría que tipo de datos usar para el campo donde necesito guardar la información compactada y debería saber además como llenar el campo con la información.
si escojo la segunda variante debería la aplicación ser capaz de tener permiso de escritura en el momento de copiar el archivo en cuestión, me resultaría mas práctico desde Delphi poder ejecutar esta acción a como lo hacen algunos sistemas, que un usuario puede ejecutar algo con otras credenciales o permisos, no se si me hago entender.

bueno ya le hes he dado una breve explicación de lo que quiero hacer, tal vez alguien me pueda ayudar y darme una buena idea.

Damián.
Responder Con Cita