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 Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-04-2007
edus1984 edus1984 is offline
Registrado
 
Registrado: abr 2007
Posts: 3
Poder: 0
edus1984 Va por buen camino
Imagen JPG en una base de datos Access

Hola a todos, esta es la primera vez que entro al foro. Quería preguntar si alguien me puede ayudar con esto:

Estoy tratando de mostrar una imagen jpg almacenada como objeto OLE en una bd Access, y me da este número de error: JPEG error #68.

Lo que hago para mostrar la imagen es utilizar un objeto TImage, asignándole un objeto TJpegImage, a partir de un flujo de un campo de una tabla (que contiene la imagen). Todo esto se hace cuando se presiona un boton. Les paso el código del botón:

Código:
procedure TForm1.botonClick(Sender: TObject);
var
  flu  : TADOBlobStream;
  Pic : TJpegImage;
begin
  flu := TADOBlobStream.Create
        (AdoTable1Foto, bmRead);
  try
    flu.Seek(JpegStartsInBlob(AdoTable1Foto),
            soFromBeginning); //Esta función busca el inicio de la imagen
    Pic:=TJpegImage.Create;
    try
     Pic.LoadFromStream(flu); //Es aquí donde da el error
     ADOImage.Picture.Graphic:=Pic;
    finally
     Pic.Free;
    end;
  finally
    flu.Free
  end;
end;
También les paso el código de la función de búsqueda:

Código:
function JpegStartsInBlob
         (PicField:TBlobField):integer;
var
 flu     : TADOBlobStream;
 buffer : Word;
 hx     : string;
begin
 Result := -1;
 flu := TADOBlobStream.Create(PicField, bmRead);
 try
  while (Result = -1) and
        (flu.Position + 1 < flu.Size) do
  begin
   flu.ReadBuffer(buffer, 1);
   hx:=IntToHex(buffer, 2);
   if hx = 'FF' then begin
     flu.ReadBuffer(buffer, 1);
     hx:=IntToHex(buffer, 2);
     if hx = 'D8' then Result := flu.Position - 2
     else if hx = 'FF' then
       flu.Position := flu.Position-1;
   end; //if
  end; //while
 finally
  flu.Free
 end;  //try
end;
Desde ya muchas gracias por su respuesta. Saludos..
Responder Con Cita
  #2  
Antiguo 24-04-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Uso access e incluyo jpg sin problemas en un campo memo, sin tanta complicacion, ni funciones, ni campos raros, ni nada.
Para traer un jpg creado desde un archivo independiente a access tambien se puede con un memo.
Saludos
Responder Con Cita
  #3  
Antiguo 25-04-2007
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Cita:
y me da este número de error: JPEG error #68.
Este tema se ha tratado bastantes veces antes, si te molestas un poco en buscar encontraras la respuesta..
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #4  
Antiguo 25-04-2007
edus1984 edus1984 is offline
Registrado
 
Registrado: abr 2007
Posts: 3
Poder: 0
edus1984 Va por buen camino
He buscado en los foros, pero no doy con ningun tema donde se mencione el error #68 de la unidad Jpeg. No quiero ser molesto pero.. ¿alguien sabe de que se trata este error? o ¿donde puedo encontrar una referencia de estos errores para saber que hago mal en el código? El problema sale cuando se ejecuta la instrucción Pic.LoadFromStream(flu), y no entiendo por que, si el flujo tendría que ser correcto . Seguramente hay algo que no estoy observando, pero no se que es. Por favor ayudenme

Muchas gracias por su tiempo nuevamente, y me parece bárbaro este sitio, ya que enseguida tuve una respuesta. Saludos..
Responder Con Cita
  #5  
Antiguo 25-04-2007
Avatar de casacham
casacham casacham is offline
Miembro
 
Registrado: abr 2006
Ubicación: Cordoba->Argentina. Arboleas->Almeria->España
Posts: 184
Poder: 19
casacham Va por buen camino
Cool Hay Solucion

Hola querido
Mira, lo mas probable es que no hayas buscado, porque no hace mas de cuatro semanas volvimos a solucionar el problema una vez mas. Aqui abajo te tiro el link del hilo donde esta la respuesta a tus problemas. Basicamente tenes que leer el Boletin Pascal N° 11. No se que es lo que quieres intentar con ese codigo y complicarte la existencia de esa forma. Haceme caso y lee el hilo que te indico aqui y despues buscas el boletin pascal n°11 cuyo link esta en ese hilo. Contanos como te fue y si sos nuevo lee bien la guia de estilo.


http://www.clubdelphi.com/foros/showthread.php?t=41768

Adios
Responder Con Cita
  #6  
Antiguo 26-04-2007
edus1984 edus1984 is offline
Registrado
 
Registrado: abr 2007
Posts: 3
Poder: 0
edus1984 Va por buen camino
Gracias por la ayuda. Espero poder ayudarles en algo alguna vez.
Responder Con Cita
  #7  
Antiguo 06-05-2007
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Aqui hay una solucion mejor,
por cierto esta solucion la posteo por segunda o por tercera vez ..
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #8  
Antiguo 08-05-2007
Avatar de casacham
casacham casacham is offline
Miembro
 
Registrado: abr 2006
Ubicación: Cordoba->Argentina. Arboleas->Almeria->España
Posts: 184
Poder: 19
casacham Va por buen camino
Cool Mejor el Boletin Pascal N#11

Hola Delfino
Estuve leyendo la solución que propusiste para el tema imagenes. Te voy a explicar porque prepiero la solución del Boletin Pascal N° 11. En este se explica como hacer un bloque de código que sirva para manipular cualquier tipo de gráfico. Es decir poder postearlo en la base de datos y luego recuperarlo para enseñarlo. La diferencia con el articulo que nos propones es que solo tiene respuestas para extensiones jpg. De todas formas, no debe ser descartado por quien lea esto, ya que explica muy bien en sus 5 secciones todo lo que ocurre cuando se esta trabajando y eso es muy valido. Gracias por tu aporte
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
Imprimer Con QuickReport Imagen JPG en Base de Datos nachoalbano Impresión 3 18-09-2006 01:05:42
base de datos access en Red Nbull Conexión con bases de datos 5 13-01-2006 12:31:49
Base de datos con campo imagen raffagia MS SQL Server 1 03-03-2005 09:32:32
Guardar una archivo de imagen (bmp,jpg..etc), en la base de datos cahosoft Firebird e Interbase 4 31-07-2004 16:53:56
Imagen en base de datos. kwan Conexión con bases de datos 20 29-07-2003 22:48:21


La franja horaria es GMT +2. Ahora son las 19:45:47.


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