Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Problemas al almacenar imagen en campo blob (https://www.clubdelphi.com/foros/showthread.php?t=32762)

Manuel 15-06-2006 16:57:54

Problemas al almacenar imagen en campo blob
 
Hola amigos del club, tengo un problema, tengo un software hecho en delphi 5 con motor de base de datos interbase, hace tiempo que almaceno la foto de los alumnos en un campo blob, todo bien, seleccionaba la foto en un software de tratamiento de imagenes y despues pegaba en mi aplicación.

dm.tAlumnosFoto.PastfromClipboard

no tuve nunca un problema pero desde que me cambie a winxp, ya nada, no pegaba la imagen. Bueno me consegui la siguiente rutina que la adepte a mi sistema.

Código Delphi [-]
procedure TFRegMatricula.bObtenerClick(Sender: TObject);
var
    Jpg: TJpegImage;
    Stream: TMemoryStream;
    archivo: string;
begin
      OpenPictureDialog1.Execute;
      archivo := OpenPictureDialog1.FileName;
      Jpg := TJpegImage.Create;
      Jpg.LoadFromFile(archivo);

      // Crear una corriente y guardar la imagen en ella

      Stream := TMemoryStream.Create;
      Jpg.SaveToStream(Stream);

      Stream.Position := 0;
      dm.TALUMNOSFOTO.LoadFromStream(Stream);
      jpg.Free;
      Stream.Free;

end;

pero sale un error, "mapa de bist no válido", no se que pasará, por que incluso tengo las foto almacenas, ahora lo que quiero es actualizarla. gracias por leer este mensaje.

waltergomez 15-06-2006 20:42:04

Que es TALUMNOSFOTO ?
Te dejo una modificacion para mejorar tu codigo.

Código Delphi [-]
procedure TFRegMatricula.bObtenerClick(Sender: TObject);
var
    Jpg: TJpegImage;
    Stream: TMemoryStream;
begin
      if OpenPictureDialog1.Execute then
      begin
        Jpg := TJpegImage.Create;
        Jpg.LoadFromFile(OpenPictureDialog1.FileName);
        Stream := TMemoryStream.Create;
        Jpg.SaveToStream(Stream);
        Stream.Position := 0;
        dm.TALUMNOSFOTO.LoadFromStream(Stream);
        jpg.Free;
        Stream.Free;
      end;
end;

Manuel 15-06-2006 21:25:45

gracias walter pero me sigue motrando lo mismo, mapa de bits incorrecto

waltergomez 15-06-2006 21:41:10

Manuel lo que puse no es para corregir el error.
Podes decirme que es TALUMNOSFOTO. Es un TField ?
En que linea te da el error ?
Salu2,

Manuel 15-06-2006 22:52:02

Gracias walter por tu paciencia,

dm.TALUMNOSFOTO = tfield como muy lo dedujiste

dm.TALUMNOSFOTO.LoadFromStream(Stream); //Aqui me da el error

pero cuando cargo un archivo con formato .dmp, no hay problemas solo me los da con los de formato jpg.


La franja horaria es GMT +2. Ahora son las 01:31:33.

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