Recuperar imagem Mysql em TImage (Delphi Seatlle)

Delphi

24/02/2019

Uso delphi Seatlle
Nesta rotina salvo a foto no Mysql (campo LongBlob) que esta no componente TImage(Image_Foto)

procedure TFormAluno.btn_EnviarClick(Sender: TObject);
var stream: TStream;
begin
dm_DataModule.tab_Alunofoto.insert;
stream := TMemoryStream.Create;
stream.WriteComponent(Image_Foto);
dm_DataModule.Tab_Alunofoto.LoadFromStream(stream);
dm_DataModule.Tab_Alunofoto.post;
end

Como recupero do Mysql pra exibi-lo em um TImage ?
Álvaro Luiz

Álvaro Luiz

Curtidas 0

Respostas

Hélio Devmedia

Hélio Devmedia

24/02/2019

olá Alvaro, tudo bem?

Você fez um código muito bom e para recuperar é somente fazer o inverso. O Field do tipo blob tem um metodo chamado saveToStream(<stream aqui>) enquanto o objeto TImage tem um método chamado loadFromStream(<stream aqui>);

Seria algo aproximadamente assim:

var
  s: TStream;
begin
  s:=TMemoryStream.Create;

  dm_DataModule.Tab_Alunofoto.SaveToStream(s);
  Image_Foto.Picture.LoadFromFile(s);
end;


Espero ter ajudado. Um forte abraço e fique com Deus.
GOSTEI 0
Álvaro Luiz

Álvaro Luiz

24/02/2019

Olá Amigo obrigado pela ajuda!
está dando o seguinte erro nessa linha

Image_Foto.Picture.LoadFromFile(s);

----- ERRO-------
[dcc32 Error] U_Principal.pas(47): E2010 Incompatible types: 'string' and 'TStream'


Tem alguma ideia? uso Delphi Seattle, Mysql e o componente de acesso MyDac
GOSTEI 0
POSTAR