[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