[firebase-br] ClientDataSet + Blob + Jpeg
Fabrício Fadel Kammer
ffkammer em conchalnet.com.br
Sex Nov 21 16:15:08 -03 2008
Boa tarde à todos!
Terminando a migração para o ClientDataSet encontrei mais um problema e
não consigo achar a solução em lugar nenhum. O problema agora é eu
conseguir armazenar uma imagem JPEG em um campo Blob do clientdataset
(enquanto usava TIBDataSet funiconava perfeitamente).
Uso o código abaixo para gravar a imagem no banco:
var
MemStream: TStream;
Jpg: TJpegImage;
begin
if dlgAbrir.Execute then
begin
MemStream :=
dmTabPrincipal.cdsDadosProprio.CreateBlobStream((dmTabPrincipal.cdsDadosProprioLogotipo
as TBlobField),bmWrite);
Jpg := TJPEGImage.Create;
Jpg.LoadFromFile(dlgAbrir.FileName);
Jpg.SaveToStream(MemStream);
MemStream.Free;
Jpg.Free;
end;
end;
E para recuperar a imagem:
MemStream := dmTabPrincipal.cdsDadosProprio.CreateBlobStream( (
cdsDadosProprioLogotipo as TBlobField ) , bmRead );
Jpg := TJpegImage.Create;
try
Jpg.LoadFromStream(MemStream);
imgLogotipo.Picture.Assign( Jpg );
finally
Jpg.Free;
MemStream.Free;
end;
Logo em seguida ao gravar o Logo no banco de dados através do
ClientDataSet se eu carregar a imagem usando o método acima funciona
corretamente, porém após fechar o ClientDataset e abrí-lo novamente não
consigo mais carregar a imagem, recebo o erro: "JPEG error #50".
Alguém saberia como solucionar esse problema?
Obrigado
Fabrício
Mais detalhes sobre a lista de discussão lista