FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Catálogo de Documentos en el Servidor
Hola a todos.
Estoy desarrollando una aplicación en tres capas en Delphi XE y con el uso de DataSnap ( Firebird ). El objetivo es crear un catálogo de documentos en el lado servidor para guardar allí todos los ficheros que se quieran agregar al catálogo ( ficheros PDF, imágenes, Documentos de word, ficheros textos, etc. ). En la base de datos de firebird se guarda en una tabla la referencia de dichos ficheros. El tema es evitar que la base de datos crezca enormemente, ya que los ficheros pueden llegar a ocupar bastante. Teniendo en cuenta las pros y contras de usar un campo BLOB en la tabla o usar el disco duro del servidor para guardar dichos ficheros. Puede alguien ayudarme a encontrar una solución en la que se pueda inicialmente pasar el archivo al lado servidor con el dataSnap que no incluya rutas físicos de red, etc?. Quiero evitar con ello el tener compartido directorios en el lado servidor para que la aplicación cliente pueda copiar allí los ficheros que sean intoducidos en el catálogo. Así se evitarían todos los problemas de seguridad en la red. Por otro lado sería transparente desde el lado cliente, el sitio donde se guardan finalmente dichos archivos. No sé si me he explicado correctamente. Pero por ejemplo he intentado algunas cosas, como: 1 . Crear un TParam y cargar el fichero en el parámetro y pasarlo a un ClientDataSet que es un Stored Procedure en el lado servidor. PERO. En el lado cliente funciona bien, pero no he encontrado en un TParam la función SaveToFile que si llegan a tener los TBlobField. 2. Con campos TBlobField si es posible hacerlo porque tiene las dos funciones ( LoadFromFile y SaveToFile ), pero necesita un DataSet cuando este es creado y no es el caso, yo necesito que esto sea independiente de una tabla de la base de datos. 3. No se me ocurre ninguna otra idea. Ayuda, Por favor. Gracias por vuestro tiempo |
#2
|
||||
|
||||
¿Va a ser demasiado grande la BD si guardas los documentos en la misma?, ¿has hecho alguna estimación?
|
#3
|
|||
|
|||
La verdad es que si. Pueden ser escáneres, ortos o imágenes que pueden llegar a pesar más de 10 MB cada una de ellas y eso por cada paciente a lo largo del tiempo puede llegar a hacer que la base de datos crezca desmesuradamente.
Alguna otra sugerencia? Gracias por vuestro tiempo |
#4
|
||||
|
||||
Lo único que se me ocurre es, dividir las base de datos y tablas para que no sean tan enormes
Como bien dices si un paciente puede tener 10Mb de datos, multiplica eso por 250 pacientes que te da 2.5Gb por día, en un mes 78.64Gb, en un año c...ño, da error la calculadora. Se puede hacer una base de datos principal que será: Hospital de Nsra. XY, dentro de esta base de datos, están las tablas, y las tablas en común son los pacientes, medicos, habitaciones, etc, cada paciente tiene su DNI, NIF, PASAPORTE, ETC, lo que sea para tomar referencia, la idea es coger algún dato del paciente que no se repita para crear una base de datos con el dato del paciente no modificable y tablas correspondientes a ese paciente y dentro de esas tablas sólo guardaremos los PDF, JPGE, DOC, XLS, ETC, ETC..., de esta forma cada base de datos sólo tendrá como máximo 50Mb por dar un poco más de cuello para los imprevistos por si hay que repetir pruebas. Es sólo una idea Un saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber. Última edición por olbeup fecha: 28-02-2012 a las 08:48:28. |
#5
|
||||
|
||||
Las únicas sugerencias que existen son dos, ya sabes:
|
#6
|
|||
|
|||
Gracias por vuestra ayuda.
Pues teniendo en cuenta los cálculos que ha hecho olbeup, tomará un tamaño bastante grande en cuestión de tiempo. Se trata de guardar ficheros que son radiografías, Ortos, escáneres, ficheros PDF, Documentos de Word, correos electrónicos, etc. Los últimos no ocupan mucho, pero los primeros ( gráficos ) si que ocupan bastante. Yo me he descartado por la segunda variante que propones. Salvar los ficheros fuera de la base de datos pero el dilema que tengo es como copiar el archivo desde el cliente hasta el servidor sin tener en cuenta los permisos de red, etc, sin tener que compartir directorios, etc y que sea transparente para la aplicación cliente. La idea es implementar un método del Servidor de aplicaciones en el que se pueda mandar el fichero ( Ej: Como lo hace los campos Blobs o los Params ) y que el Servidor de aplicaciones se encargue de guardar el fichero pasado en su destino final. Pero lo que no encuentro es como pasar el fichero al estilo de los TBlobField o de un TParam. Un saludo |
#7
|
||||
|
||||
Cita:
Porque descartar es: Cita:
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Crear catalogo con IBSQLMonitor | learning_delphi | Firebird e Interbase | 11 | 02-10-2011 11:18:28 |
Impresión de catálogo con imagenes | quali | Impresión | 0 | 16-04-2011 16:13:02 |
Catalogo de Colonias | mRoman | Varios | 10 | 22-03-2011 19:10:00 |
generar e imprimir catalogo | fartycl | Impresión | 3 | 11-10-2005 17:57:35 |
Ventana Auxiliar O Catalogo | juan-manuel-gl | Conexión con bases de datos | 1 | 09-02-2005 21:54:24 |
|