Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-02-2009
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
Base Dato + Imagen

Se que esta pregunta la han hecho y respondido muchas veces, pero con todo la información que he encontrado no he podido solucionar mi problema.

Necesito guardar y mostrar imagenes en una base de dato, utilizo Firebird 2.1 y Delphi 2006.

Expongo los codigos que utilizo para guardar y mostrar la imagen.

Guardar
Código Delphi [-]
var
  MS : TMemoryStream;
begin
  MS := TMemoryStream.Create;
if (OpenDialog1.Execute) then
begin
  MS.LoadFromFile(OpenDialog1.FileName);
  with ibsql1 do
  begin
    ibtransaction1.active:=true;
    SQL.Clear;
    SQL.Add('update empresa set foto=:foto');
    sql.add('where nombre ='+quotedstr(label1.caption));
    ParamByName('Foto').LoadFromStream(ms);
    execquery;
    ibtransaction1.commit;
    MS.Free;
  end;
  end;

Mostrar
Código Delphi [-]
var
MemoryStream : TMemoryStream ;
ImageBuffer : tbitmap   ;
begin
ibquery3.Close;
ibquery3.sql.clear;
ibquery3.sql.add('select * from empresa where nombre ='+quotedstr(label1.caption));
ibquery3.open;
MemoryStream := TMemoryStream.Create;
TBlobField(ibquery3.FieldByName('foto')).SaveToStream(MemoryStream);
ImageBuffer := TJpegImage.Create;
ImageBuffer.LoadFromStream(MemoryStream);
image1.Picture.Assign(ImageBuffer);
ImageBuffer.free;
ImageBuffer.Free;
end;

Me arroja un error #42, ni idea de lo que puede estar ocurriendo.

Espero me puedan ayudar.... gracias
Responder Con Cita
  #2  
Antiguo 17-02-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿En qué línea exactamente se produce el error? Intuyo, pero puede ser que no, que se produce en

Código Delphi [-]
ImageBuffer.LoadFromStream(MemoryStream);

ya que no has reembobinado el stream:

Código Delphi [-]
MemoryStream.Seek(0, soFromBeginning)
ImageBuffer.LoadFromStream(MemoryStream);

En todo caso, quizá puedas probar la función FieldToPicture que puse aquí.

Debería funcionar para cualquier campo de tipo BLOB.

// Saludos
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
Base de Dato + Imagen mjjj SQL 2 11-03-2009 13:02:27
Ayuda Base De Dato danger04 MySQL 1 04-12-2008 10:44:04
Que base de dato usar??? JBMDGZ Conexión con bases de datos 9 02-12-2005 22:40:49
Tipo dato imagen Ricardo Alfredo Gráficos 0 26-08-2005 20:25:16
Base de Dato Remota HugoH Conexión con bases de datos 17 19-04-2004 18:34:14


La franja horaria es GMT +2. Ahora son las 00:16:46.


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