IBX: Recuperar conteúdo Blob para TImage

Firebird

18/08/2005

Olá ... Estou usando o Delphi 5 + IBX com update 5.0.4 acessando uma Base de Dados FireBird 1.5.2 e aplicando muitas tentativas frustradas ao recuperar o conteúdo de um campo Blob (imagem bmp) e enviá-la para um TImage.

Segue o código...

procedure TForm1.Button1Click(Sender: TObject);
var Blb: TStream;
    str: string;
begin
Str:=GridFoto.Columns.Items[1].Field.AsString;

FBQry.SQL.Clear;
FBQry.SQL.Add(´select FIGU from tabsimov where NOME=´´´+EdNome.text+´´´´);
FBQry.Open;

Blb:=FBQry.CreateBlobStream(FBQry.FieldByName(´FIGU´),bmRead);
Blb.Position:=0;
DBImg.Picture.Bitmap.LoadFromStream(Blb);
end;


Já de outra forma, funciona sem problemas, SE eu enviar a stream e gravá-la no disco, mas para exibir no TImage parece estar muito complicado, e tenho receio que seja algum BUG do IBX... e também já tentei com outras variáveis derivadas de TStream ... como: TBlobStream e TMemoryStream ... e testei também, sem sucesso, com TBlobField:

var ccc: TBlobField;
ccc:=TBlobField(FBQry.FieldByName(´FIGU´));


Alguém já passou por isso?


Nerdex

Nerdex

Curtidas 0

Respostas

Afarias

Afarias

18/08/2005

Geralmente eu uso um código +/- assim:

var
  Stm: TStream;
begin
  Stm := TMemoryStream.Create;
  try
    {...}
    TBlobField(FBQry.FieldByName(´blob´)).SaveToStream(Stm);
    stm.Position := 0;
    Image1.Picture.LoadFromStream(Stm);
  finally
    Stm.Free;
  end;
end;



T+


GOSTEI 0
Nerdex

Nerdex

18/08/2005

Blz ... funcionou 100 ¬ - uso imagens .bmp e irei comprimí-las antes de enviar para o Bco com zLib.pas - acho que vai ficar show ...

Abraço


GOSTEI 0
Afarias

Afarias

18/08/2005

vai ficar sim. 8)


T+


GOSTEI 0
POSTAR