[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