FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Y la mejor solución que podría existir es que Firebird tuviera una opción algo así como LoadBlobFromFile, de forma tal que en un query yo pudiera hacer algo como:
Ahí verán si creamos una UDF que haca eso... (aunque siempre me quedo en el punto de como cargar el campo blob sin usar ni DBX, IBX ni ningún componente que requiera una DLL)
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H" |
#3
|
|||
|
|||
Gracias a todos por sus comentarios
Después de leer sus opiniones he decidido probar con la segunda variante - Crear una tabla independiente con solo las imágenes y un campo llave. Incluir las imágenes en la tabla porque como bien dice RonPablo me parece que: 1) Trabajar con tantos archivos independientes (2000 o 4000 0 xxx) parece ser mucho mas complicado y habria que trabajar bien claro con el tema de definir nombres de archivos secuenciales, etc... 2) El tema de la integridad referencial de la base de datos se pierde o se hace casi nulo al no poder controlar que no se pierdan archivos independientes. 3) La creación de Copias de seguridad de tantos archivos debe ser mas molesto de tratar y debe tener menos rendimiento. 4) Se aprovecha la ventaja de Firebird de que toda la información esté incluida en un solo archivo (como dice Ardilla), esto facilita la distribución y traslado del sistema. 5) Como las imágenes son solo fotos tipo cédula ya he realizado pruebas y se puede limitar su tamaño máximo a 5 Kb lo que permitiria que no creciera tan aceleradamente el tamaño de archivo. Crear una tabla independiente dentro de la base de datos para la imágenes con un campo llave ya que en la mayoría de las consultas no será necesario trabajar con las imágenes lo que hace mas eficiente al sistema. De todas formas voy a simular una base de datos con 4 o 6 mil trabajadores para realizar pruebas de rendimiento antes de hacer el sistema real.
__________________
Saludos Seara2005 |
#4
|
||||
|
||||
Cita:
Y después es darle el tratamiento de tipo Blob que ahora no recuerdo como es por eso no lo pongo
__________________
"Como pasa el tiempo..... ayer se escribe sin H y hoy con H" |
#5
|
||||
|
||||
Nuestra gestión comercial almacena las imágenes en la base de datos, en una tabla específica para ello. Esta base de datos es accesible por internet en tiempo real para todos los clientes/usuarios/curiosos. Cualquiera puede consultar los artículos, ver sus fotos, descripciones, precios, stock, etc y hacer sus pedidos por internet, repito, en tiempo real y conectados a la base de datos de la empresa.
Varios de nuestros clientes tienen bases de datos que hace tiempo pasaron de los 10 Gb y algunos están ya rondando los 20 Gb. Además de las imágenes de los artículos también almacena documentos de todo tipo ya sean escaneados o no. Por si fuese poco, también las firmas de los clientes, por cada venta, se leen con un escaner de firmas. De momento, hasta ahora, el único inconveniente es que hacer el backup tarda más y ocupa más que si no tuviera las imágenes, aunque da igual, se hacen automáticamente por las noches y sin detener el sistema porque con Firebird se puede crear un backup aunque estén trabajando otros usuarios. Los clientes hacen los pedidos por internet en tiempo real porque el servidor web está conectado a la base de datos del servidor principal, o sea, trabajan realmente con la base de datos de la empresa creando sus pedidos. El único cuello de botella es el ancho de banda de internet, la subida, que aquí en España es muy baja a no ser que pagues una fortuna cada mes para que te den un poco de más velocidad. |
#6
|
|||
|
|||
Cita:
Mi ventaja es que solo necesitaría cargar una imagen por vez. El problema que mas me preocupa es el tema de la seguridad. No obstante la UDF rFunc tiene algunas funciones que pueden servir como guía: http://rfunc.sourceforge.net/rfunc.htm En la sección de funciones "File". Otra opción podría ser codificar en la función UDF el fichero con alguna codificación MIME y cargar un string (comprimido??) que podríamos decodificar en el cliente. Por cierto, como complemento a esto y para evitar el acceso directo a disco con sentencias SQL, he pensado que lo mejor sería un script que haga limpieza de los archivos una vez borrados en la base de datos la información que los complementa. De todas formas este sistema solo tiene sentido cuando no hay interacción del usuario a la hora de cargar archivos, todo está automatizado, y el usuario solo los procesa añadiendo información. El tema se complica en los casos mas comunes en que el usuario deba crear y gestionar los archivos de forma directa. En este caso en la mayoría de las ocasiones, sobre todo cuando hay mucha diversidad en el dato/s a guardar) he optado por una ruta automática: "CAMINO"+"CLAVE del REGISTRO" sobre un servidor de archivos. |
#7
|
|||
|
|||
Y usar scp, sftp
Después de descubrir que OpenERP usa ftp para su soporte documental he estado pensando que, si optamos por almacenar los ficheros de forma externa a la base de datos, una opción interesante a los servidores de archivos (SMB, NFS, ...) sería usar el protocolo sftp o scp. Esto permitiría abrir a internet nuestros archivos con algo mas de seguridad que usando los otros protocolos.
Una opción rápida podría ser usar un programa como WinSCP como opción al explorador de windows. Sería cuestión de descubrir si tiene alguna forma de "relacionarse" con él. ¿Alguna experiencia al respecto? |
#8
|
|||
|
|||
Por cierto WinSCP está programado en Borland C++ Builder 6 Professional y tiene disponible el código fuente.
|
#9
|
||||
|
||||
Hola amigos de foro, mi preguntas es cuál es la instrucción para insertar una imagen.
no deseo utilizar el componente DBImage, porque solamente me inserta imagenes BMP... También me gustaria saber cómo recupero la imagen de la base de datos... de antemano muchas gracias por vuestro tiempo Gustavo Cruz |
#10
|
|||
|
|||
Con ese tamaño de foto y de base de datos por qué no en la base de datos.
http://www.clubdelphi.com/foros/showthread.php?t=41572 |
#11
|
|||
|
|||
En este caso no se utiliza otro campo para el formato.
Para probar en un Formulario (Form1) pones: Un TOpenPictureDialog y lo nombras OpenPictureDialog, Un TButton y Lo Nombras ButtonCargarImagen, Un TButton y lo Nombras MostrarImagen, Un TButton y lo Nombras BorrarImagen, Un TImage y lo Nombras ImageFoto, Además en DataModule1 existe una tabla de InterBase IBTPersonas con un campo tipo Blob llamado Foto (Enlazada a la correspondiente base de datos). Tambien puedes poner un DbGrid enlazado a la Tabla mediante el DataSource correspondiente para seleccionar el registro con que quieras experimentar. Adicionar en el Uses JPEG Para cargar la Imagen (bmp, jpg, ico) con el diálogo directamente a la base de datos:
Para Mostrar la Foto almacenada en la base de dastos en el TImage:
Para Borrar la imagen de la base de datos:
__________________
Saludos Seara2005 Última edición por seara2005 fecha: 17-11-2009 a las 23:27:45. |
#12
|
||||
|
||||
Hola,
yo tengo una tabla con la clave y la imagen. Previamente a la carga en la BBDD comprimo los archivos ( pueden ser de cualquier tipo ) ylógicamente previo a mostarlos los descompprimo en una unidad temporal. Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#13
|
||||
|
||||
Hola amigos, logré insertar una foto, pero el problema que tengo ahora es que al momento de recuperar la foto de la db, me muestra un error de incompatibilidad. "incompatible cast type"
la forma en como declaro el campo es: . le agradezco infinitamente que me puedan ayudar... y de antemano muchas gracias por vuestro tiempo... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Imagenes en Firebird 2 | trex2000 | Firebird e Interbase | 1 | 27-12-2007 00:17:23 |
Firebird 1.5.3 Error:No puede ejecutarse Firebird Guardian xq ya hay una instancia | Delphius | Firebird e Interbase | 5 | 26-01-2007 10:19:20 |
¿Que tipo de imágenes soporta firebird? | Delphius | Firebird e Interbase | 12 | 13-10-2006 19:33:58 |
Insertar Imagenes en Firebird (y la madre que lo pario!!!) | papulo | Firebird e Interbase | 7 | 23-11-2005 16:13:07 |
Imagenes(BLOB) Firebird con VB6 | pzhero | Firebird e Interbase | 5 | 06-05-2004 15:32:45 |
|