[firebase-br] ClientDataSet + Blob + Jpeg
Kleber Caneva
kdcc em terra.com.br
Seg Nov 24 18:14:21 -03 2008
Desculpe.. não tinha atentado a isso.. nessa rotina realmente tenho que
gravar como bmp.
Mas acredito que o mesmo funciona se vc colocar o Jpeg
dtmUsuario.cdsPadraoASSINATURA.Assign(Jpeg);
Em tempo, você já tentou fazer direto ?
cdsTabelaCAMPO.LoadFromFile(OpenDialog1.FileName);
[]´s
Kléber Caneva
----- Original Message -----
From: "Fabrício Fadel Kammer" <ffkammer em conchalnet.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Monday, November 24, 2008 4:06 PM
Subject: Re: [firebase-br] ClientDataSet + Blob + Jpeg
Boa tarde Kleber, obrigado pelo retorno, o problema é que dessa forma a
imagem gravada no BD é um BMP e não um JPEG e o tamanho aumenta demais.
Estou tentando resolver o problema de armazenamento do JPEG direto no FB
usando ClientDataSet (com IBX direto funcionava).
Mesmo assim obrigado pelo retorno
Fabrício
Kleber Caneva escreveu:
> Eu tenho usdo assim e funciona muito bem
>
> var Bmp: TBitMap;
> JPeg: TJpegImage;
> Gif: TJvGIFImage;
> begin
> inherited;
> If not OpenPictureDialog1.Execute then
> Exit;
>
> JPeg := TJPEGImage.Create;
> Gif := TJvGIFImage.Create;
> Bmp := TBitMap.Create;
> try
> If UpperCase(ExtractFileExt(OpenPictureDialog1.FileName)) = '.JPG'
> then
> begin
> JPeg.LoadFromFile(OpenPictureDialog1.FileName);
> Bmp.Assign(JPeg);
> end
> else If UpperCase(ExtractFileExt(OpenPictureDialog1.FileName)) =
> '.GIF'
> then
> begin
> Gif.LoadFromFile(OpenPictureDialog1.FileName);
> Bmp.Assign(Gif);
> end
> else
> begin
> Bmp.LoadFromFile(OpenPictureDialog1.FileName);
> end;
>
> if not(dtmUsuario.cdsPadrao.State in [dsInsert,dsEdit]) then
> dtmUsuario.cdsPadrao.Edit;
> dtmUsuario.cdsPadraoASSINATURA.Assign(Bmp);
> except
> Application.HandleException(nil);
> end;
> JPeg.Free;
> Gif.Free;
> Bmp.Free;
> end;
>
> []´s
>
> Kléber Caneva
>
> ----- Original Message -----
> From: "Fabrício Fadel Kammer" <ffkammer em conchalnet.com.br>
> To: "Lista Firebase" <lista em firebase.com.br>
> Sent: Friday, November 21, 2008 3:15 PM
> Subject: [firebase-br] ClientDataSet + Blob + Jpeg
>
>
> 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
>
> ______________________________________________
> 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
>
>
> ______________________________________________
> 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
>
>
______________________________________________
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=SCY0NDU0NzM0I3Blcm0hdGVycmEmMSwxMjI3NTUzNTM0Ljk2Njc1NS4yNDkyMi5ib3ByZS50ZXJyYS5jb20sNzMxMA==
Verifique periodicamente a pasta Spam para garantir que apenas mensagens
indesejadas sejam classificadas como Spam.
Mais detalhes sobre a lista de discussão lista