[firebase-br] ClientDataSet + Blob + Jpeg

Fausto fausto.s.a em uol.com.br
Qui Nov 27 22:47:10 -03 2008


Fabrício Fadel Kammer escreveu:
> Bom dia Kleber,
> 
> Obrigado pelo retorno, mas realmente não consigo gravar e recuperar uma 
> imagem jpeg através do ClientDataSet.
> 
> Será que mais alguém pode auxiliar-me? Preciso gravar e recuperar 
> arquivos JPEG dentro de campos Blob usando 
> ClientDataSet+DataSetProvider+IBQuery.
> 
> Grato
> 
> Fabrício
> 
Amigo, não uso IBQuery, uso DBExpress faço da seguinte forma:
Para gravar:
var
   BS: TStream;
   Imagem: TJPEGImage;
begin
   with DataRepres do
   begin
     if CdsPar.State = dsEdit then
     begin
       FotoProDialog.Title := 'Selecione um logotipo';
       if FotoProDialog.Execute then
       begin
         BS := CdsPar.CreateBlobStream((CdsParLOGO as TBlobField), BMWRITE);
         Imagem := TJPEGImage.Create;
         Imagem.LoadFromFile(FotoProDialog.FileName);
         Imagem.SaveToStream(BS);
         Logo.Picture.Assign(Imagem);
         BS.FREE;
         Imagem.Free;
       end;
     end;
   end;
end;

Para exibir:
var
   BS: TStream;
   Imagem: TJPEGImage;
begin
   with DataRepres do
   begin
     CdsPar.Open;
     Logo.Picture := nil;
     BS := CdsPar.CreateBlobStream((CdsParLOGO as TBlobField), BMREAD);
     if BS.Size > 0 then // Verifica se o registro tem imagens gravadas
     begin
       Imagem := TJPEGImage.Create;
       Imagem.LoadFromStream(BS);
       Logo.Picture.Assign(Imagem);
       BS.FREE;
       Imagem.Free;
     end;
   end;
end;
Lembrando que:
Logo é um TImage
FotroProDialog é um TOpenDialog
-- 
Fausto Alves
Msn:faustoalves em com4.com.br
Skype:faustoalves
Franca-SP
Enviado pelo Mozilla Thunderbird
http://br.mozdev.org/thunderbird





Mais detalhes sobre a lista de discussão lista