Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-07-2012
ElMug ElMug is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 163
Poder: 12
ElMug Va por buen camino
Leer JPEG o BitMap de campo blob

Aqui les dejo este desarrollo original de hace un par de dias, con el que se evita el tener una segunda columna para indicar el tipo de imagen guardada en una columna tipo Blob, y sin tener que descifrar el dato Blob escudriñandolo, para ver si es JPEG o Bitmap, y mostrar la imagen en un componente TImage.

Esto solo es para mostrar la imagen en dicho componente, pues de sobra se sabe que el guardado de la imagen en columna tipo Blob, es asunto trillado, y se hace usualmente mediante Image1.Picture.LoadFromFile(dlgOpenPicture.FileName). Pero realmente es irrelevante de como se archivo el dato Blob, siempre que no este fuera de lo convencional.

El asunto de este nuevo procedimiento es, pues, MOSTRAR la imagen en un componente TImage, irrespectivamente de si sea tipo .bmp o tipo JPEG.

Obvio les sera, que este procedimiento se puede facilmente ampliar si en la aplicacion se desea archivar otro tipo mas de imagen.

Sin embargo, el tipo JPEG y el Bitmap son los mas comunes. Si se desea archivar otro tipo de imagen, ya se sabe que hay varias utilerias para convertir imagenes a JPEG o a Bitmap, cuando aun son archivos. Hay utilerias que hacen la conversion al nivel Folder, inclusive.

Este es el codigo:

Código:
// var
//  BlobField: TField;
//  BS: TStream;

  with SQLQuery1 do
    begin
       BlobField := FieldByName('Pic'); {'Pic'  es el nombre de la column Blob con las fotos}
       BS := CreateBlobStream(BlobField,bmRead);
       Image1.Picture.Graphic:= TJpegImage.Create; {se asume sea JPEG}
    Try
       Image1.Picture.Graphic.LoadFromStream(BS); {error si no es JPEG}
      Except {repetir pasos para BitMap}
         BS.Free;
         Image1.Picture.Graphic:= nil; {vaciarla}
         BlobField := FieldByName('Pic'); {'Pic' es el nombre de la column Blob con las fotos}
         BS := CreateBlobStream(BlobField,bmRead);
         Image1.Picture.Graphic:= TBitMap.Create; {bitmap}
         Image1.Picture.Graphic.LoadFromStream(BS);
      end; {Try}
      BS.Free;
    end; {with SQLQuery}
Espero lo encuentren util y facil de entender.

Última edición por ElMug fecha: 23-07-2012 a las 12:55:07.
Responder Con Cita
  #2  
Antiguo 23-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Se agradece el aporte, pero un código como ese lo puedes encontrar infinidad de veces en los foros porque es un tema que se ha tratado muchísimas veces.
Además, como usuario nuevo, deberías de leer nuestra guía de estilo, cosa que te he recomendado en otros mensajes y veo que no has hecho.
También te recuerdo que debes poner los mensajes en los foros adecuados, ya que este es el de "conexión con bases de datos", algo de lo que no trata tu mensaje.
Te recuerdo que debes seleccionar el 'tag' adecuado según el tipo de código fuente publicado, en este caso es delphi.
Además he cambiado el título de tu mensaje: "Nuevo procedimiento para leer JPEG o BitMap sin segunda columna ni descibrar bits.", porque ni es nuevo, ni es un procedimiento, ni tiene nada que ver con "segundas columnas" ni "descifrar bits".



De todas formas, nos agrada de que hayas "descubierto" ese código.
Saludos.

Última edición por Casimiro Notevi fecha: 23-07-2012 a las 13:24:43.
Responder Con Cita
  #3  
Antiguo 24-07-2012
ElMug ElMug is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 163
Poder: 12
ElMug Va por buen camino
Casimiro,

Podrias indicar en DONDE has visto esta nueva y ventajosa manera de solucionar ESTE problema?

Aparte, si es tu potestad y deseo, mueve el mensaje, o eliminalo.

Yo ya aporte esto con el fin de que a alguien le pueda servir.
Responder Con Cita
  #4  
Antiguo 24-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por ElMug Ver Mensaje
Casimiro, Podrias indicar en DONDE has visto esta nueva y ventajosa manera de solucionar ESTE problema?
Si haces una simple búsqueda en los foros encontrarás 82 hilos con ese código, no me ha apetecido leerlos todos, tengo otras cosa que hacer
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Leer datos de campo tipo blob Dens SQL 17 15-06-2017 20:15:30
FireBird, ZeosLib y JPEG en BLob JCarlosas Firebird e Interbase 3 08-04-2014 17:18:39
Error al guardar Jpeg en Campo Blob El_Perrito Gráficos 6 28-04-2012 20:06:38
Leer un campo BLOB con PHP mcaar Oracle 0 18-11-2004 14:15:56
Problemas alguardar imagenes jpeg y gif en un campo blob Flycket Firebird e Interbase 3 20-02-2004 09:29:02


La franja horaria es GMT +2. Ahora son las 02:02:13.


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