Jump to content


Photo

Insertar un fichero cualquiera (no foto) en un campo blob de Firebird.


  • Please log in to reply
4 replies to this topic

#1 AngelF

AngelF

    Advanced Member

  • Miembros
  • PipPipPip
  • 100 posts
  • LocationValencia - España

Posted 30 November 2010 - 12:01 PM

Hola a todos.
Bueno, el título me ha quedado muy largo pero bastante explícito de lo que busco. Quiero insertar un fichero cualquiera que no sea de fotos en una bd de firebird.
Para ello supongo que el campo apropiado es de tipo blob.
El tipo de fichero al que me refiero es por ejemplo cualquiera de office (.doc, .xls, etc.) un pdf u otro cualquiera. Digo que no sea de fotos porque en este hilo se explica muy bien cómo se hace para fotos y ese procedimiento no funciona con un pdf por ejemplo.

Ya sé que la base de datos va a crecer mucho y habrá que tener cuidado con las consultas, pero me interesa que los ficheros se inserten dentro de la bd para así vender un producto "todo en uno" donde el cliente no se preocupe de andar copiando muchos ficheros cuando quiera trasladar la bd a otro ordenador.

¿Se puede hacer? Si se puede ¿cómo lo hago?

Un saludo al foro.
  • 0

#2 jdepaz

jdepaz

    Advanced Member

  • Miembros
  • PipPipPip
  • 264 posts
  • LocationMedellín Colombia

Posted 30 November 2010 - 04:48 PM

Hola,

esto te puede ayudar:

http://www.devarticl...-with-Delphi-2/

Saludos
  • 0

#3 AngelF

AngelF

    Advanced Member

  • Miembros
  • PipPipPip
  • 100 posts
  • LocationValencia - España

Posted 01 December 2010 - 04:14 AM

Gracias jdepaz. El artículo tiene buena pinta. Lo único es que es para bd ADO aunque supongo que valdrá igual para firebird.

Ya lo pruebo.

Un saludo.
  • 0

#4 ematrix

ematrix

    Member

  • Miembros
  • PipPip
  • 25 posts
  • LocationMExico

Posted 16 June 2011 - 05:50 PM

a ver amigo lo quieres en .net ado

para firebird para buscar el code y publicarlo

saludos
  • 0

#5 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1092 posts
  • LocationMurcia, España

Posted 17 June 2011 - 03:21 AM

Solo necesitaras un campo de texto para el nombre de fichero (o al menos la extension) y un campo tipo blob para el fichero.

Para cargarlo, yo uso un FileStream de solo lectura para leer el fichero, y en el field solo uso un MyField.LoadFromStream(MyFileStream).

Por cierto, mi aplicacion usa esto continuamente, y las bases de datos en algunos clientes llegan a los 20 gigas y cosas asi, y puedo asegurarte que las consultas casi ni se enteran. Piensa que los cambos blob estan en tablas internas diferentes al resto de columnas, y un campo tipo blob, realmente en tu tabla se guarda como un varchar de 10, que contiene un puntero al contenido real del blob en esa tabla especial, por eso una consulta no te tarda nada mas por tener un blob de ficheros de 5 megas cada uno.

Yo puse toda la maquinaria de leer/guardar un fichero a un blob en unas funcioncitas/objetitos para que fuese posible volcar esos campos a una BD historica: Uso tabla+id del record como identificador del fichero en la BD historica (para poder recuperar el contenido si hace falta) y en el antiguo campo, vacio el blob y el nombre del fichero lo cambio a algo como "Archivado en BD historica", y cuando me piden abrir el fichero, si veo que el nombre es ese, pues le doy la mala noticia al pobre usuario.
  • 0




IP.Board spam blocked by CleanTalk.