[firebase-br] ClientDataSet + Blob + Jpeg

Kleber Caneva kdcc em terra.com.br
Sex Nov 28 08:23:19 -03 2008


Só pra constar, eu também uso DBExpress. Então pode ser problema do 
componente de acesso qeu você está usando e não do CDS.

[]´s

Kléber Caneva


----- Original Message ----- 
From: "Fausto" <fausto.s.a em uol.com.br>
To: <lista em firebase.com.br>
Sent: Thursday, November 27, 2008 9:47 PM
Subject: Re: [firebase-br] ClientDataSet + Blob + Jpeg


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


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: 
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa

E-mail verificado pelo Terra Anti-Spam.
Para classificar esta mensagem como spam ou não spam, visite
http://mail.terra.com.br/cgi-bin/reportspam.cgi?+_d=SCY0NDU0NzM0I3Blcm0hdGVycmEmMSwxMjI3ODMzMzQyLjg3NTA1LjQyOTUuYm9wcmUudGVycmEuY29tLDU3MDQ=
Verifique periodicamente a pasta Spam para garantir que apenas mensagens
indesejadas sejam classificadas como Spam.






Mais detalhes sobre a lista de discussão lista