Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-02-2012
Aldo Aldo is offline
Miembro
 
Registrado: ene 2004
Posts: 46
Poder: 0
Aldo Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 27-02-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.052
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Va a ser demasiado grande la BD si guardas los documentos en la misma?, ¿has hecho alguna estimación?
Responder Con Cita
  #3  
Antiguo 28-02-2012
Aldo Aldo is offline
Miembro
 
Registrado: ene 2004
Posts: 46
Poder: 0
Aldo Va por buen camino
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
Responder Con Cita
  #4  
Antiguo 28-02-2012
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
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.
Responder Con Cita
  #5  
Antiguo 28-02-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.052
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Aldo Ver Mensaje
Alguna otra sugerencia?
Las únicas sugerencias que existen son dos, ya sabes:
  1. Guardas los documentos en la BD
  2. Guardas los documentos fuera de la BD
De todas formas, no has respondido a cómo de grande puede ser la BD.
Responder Con Cita
  #6  
Antiguo 28-02-2012
Aldo Aldo is offline
Miembro
 
Registrado: ene 2004
Posts: 46
Poder: 0
Aldo Va por buen camino
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
Responder Con Cita
  #7  
Antiguo 28-02-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.052
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Casimiro Notevi Ver Mensaje
  1. Guardas los documentos en la BD
  2. Guardas los documentos fuera de la BD
Creo que no te he entendido esto:
Cita:
Empezado por Aldo Ver Mensaje
Yo me he descartado por la segunda variante que propones.
Porque descartar es:
Cita:
descartar
  • desechar, eliminar, prescindir, suprimir, repudiar, recusar, excluir
  • abstenerse, excusarse, evitar, rehuir
Cita:
Empezado por Aldo Ver Mensaje
Salvar los ficheros fuera de la base de datos
Entiendo que la que has descartado es la 1º, guardar en la BD. O sea, que quieres guardarlos en un directorio del servidor.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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


La franja horaria es GMT +2. Ahora son las 09:17:03.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi