Exibir imagem que está no banco em um componente Image

Delphi

25/02/2011

O que há de errado com o seguinte código? ocorre o seguinte erro: EAccessViolation


...
var  stream : TMemoryStream;
begin
  stream := TMemoryStream.Create;
  ZTable1.Edit;  try  TBlobField(ZTable1.FieldByName('poster')).SaveToStream(stream) ;  ZTable1.Post;  stream.Position := 0;  Image2.Picture.Graphic.LoadFromStream(stream);
  finally  stream.Free;
end;

...








Obrigado
Olocobixo

Olocobixo

Curtidas 0

Respostas

Wilson Junior

Wilson Junior

25/02/2011

Veja se isto lhe ajuda
procedure MostrarImagemCampoBlob( DataSet : TDataSet; strCampo : String;

  imgExibicao : TImage );

var

  MemoryStream : TMemoryStream;

begin

  if  not((DataSet.FieldByName(strCampo) as TBlobField).IsNull) then

    begin

      MemoryStream := TMemoryStream.Create;

      try

        imgExibicao := TImage.Create( Nil );

        (DataSet.FieldByName(strCampo) as TBlobField).SaveToStream(MemoryStream);

        MemoryStream.Position := OffsetMemoryStream;

        imgExibicao.Picture.Bitmap.LoadFromStream(MemoryStream);

      finally

        MemoryStream.Free;

      end

    end

  else

    ImgExibicao.Picture := Nil

  ;

end;



Espero ter colaborado.
GOSTEI 0
Marco Salles

Marco Salles

25/02/2011

 Parece que o Erro de AV que vc esta obtendo se deve ao fato do campo porter ser null .  
GOSTEI 0
POSTAR