[firebase-br] ClientDataSet + Blob + Jpeg

Marcelo Marchionny marcelomarchionny em gmail.com
Sex Nov 28 09:26:22 -03 2008


Eu particalarmente salvo a imagem primeiramente no HD, e depois carrego ela
para o sqldataset pois utilizo a trio sqldataset, datasetprovider e
clientdataset

MeuSQLDataSet.Params[Posicao].LoadFromFile('CAMINHO_DA_IMAGEM_NO_HD',
ftBlob);


e para buscar do banco faço ao inverso mas dai usando o clientdataset

var
JPG     : TJpegImage;
.
.
.
          JPG := TJpegImage.Create;
          // SALVA TEMPORARIAMENTE O ARQUIVO
          Arquivo :=
Trim(TClientDataSet(Application.FindComponent('cdsFileUser')).Fields[0].AsString
+ '.jpg');

TBlobField(TClientDataSet(Application.FindComponent('cdsFileUser')).FieldByName('ARQUIVO')).SaveToFile('C:\TEMP\'
+ arquivo);

e depois jogo no image

espero que ajude

Marcelo



2008/11/28 Kleber Caneva <kdcc em terra.com.br>

> 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 <Msn%3Afaustoalves 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.
>
>
>
> ______________________________________________
> 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
>



Mais detalhes sobre a lista de discussão lista