![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#8
|
||||
|
||||
|
Yo antes no usaba campos blob (no puedes buscar en su interior, pesan más, etc), optaba por guardarlos fuera de la BBDD, pero eso también tiene sus inconvenientes (alguien puede borrar el archivo, debes compartir la carpeta de facturas en la red para que sean accesibles a todos los puestos, con la inseguridad que genera; las copias de seguridad tienes que incluir más archivos, etc).
Para eficiencia no hay problema con los campos Blob, porque cuando haces un select, lo único que se trae es el ID del campo Blob (es decir, no se trae el contenido del campo). Firebird guarda el contenido del campo en otra página de la Base de datos, solo se accede cuando fuerzas la lectura del contenido (por eso la mayoría de grids te ponen el texto (blob), para no realizar la búsqueda. Por supuesto la BBDD pesará mucho más, por los campos blob, pero si tu aplicación los necesita, al final el espacio se ocupa igual (BBDD + ficheros). A remarcar que se puede partir el archivo de BBDD llegado cierto tamaño (se especifica al crear la BBDD y ya Firebird se ocupa del resto), aunque si no usarás FAT (con su límite de 4 GB) y el disco duro es de 1 TB, pues quizás ni tengas que valorarlo. Si los campos blob están definidos como subtipo texto, desde Firebird 2.0 puedes hacer un select buscando en su interior, algo tipo: Firebird ya hace el moldeo de tipos de Blob a string automáticamente. Si son binarios (como los pdf), tienes que andar con loadfromstream, savetoStream y Assign (no hay drama). Cargar en un campo desde Archivo (el control de errores lía un poco el código... pero en realidad solo son 3 líneas):
Si el archivo es una foto y lo tienes en un TImage, en Image1.Picture tienes el SaveToStream y LoadFromStream Y si necesitas cargarlo en memoria, para después transferirlo, usas un TMemoryStream: Si un fichero es texto plano, tienes el TStringStream, todos son desdendientes de TStream y funcionan igual. Saludos!
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 19-04-2015 a las 18:32:04. |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| DB firebird meter y sacar texto e imagenes a campos blob , con delphi | JXJ | Firebird e Interbase | 1 | 11-10-2010 12:52:34 |
| Error al insertar un nuevo registro | FGarcia | Firebird e Interbase | 3 | 19-07-2008 23:01:25 |
| Como Insertar Registro Nuevo ENTRE los demás Registros???? | AGAG4 | Conexión con bases de datos | 1 | 18-01-2006 04:03:45 |
| Insertar Nuevo Registro | perillan | Conexión con bases de datos | 3 | 24-04-2005 15:30:23 |
| Error al insertar nuevo registro | Humberto | Firebird e Interbase | 13 | 06-05-2004 23:45:01 |
|