[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