[firebase-br] ClientDataSet + Blob + Jpeg

Wellington Melo wellmsilva em gmail.com
Sex Nov 28 10:25:53 -03 2008


   Uso o SimplesDataset do DBExpress.
   Para este caso eu uso: SimplesDataSet, cxDBImagem do Jedi;
   Não precisa de função nenhuma, basta colocar:

  Simplesdataset1FOTO.LoadToFile(OpenDialog1.filename);

 no insert e pronto. ele grava e mostra a imagem a qualquer momento.

2008/11/28 Wellington Melo <wellmsilva em gmail.com>

> Bom dia,
>       Uso o SimplesDataset do DBExpress.
>
>
> 2008/11/28 Fabrício Fadel Kammer <ffkammer em conchalnet.com.br>
>
> Obrigado pelas respostas Kleber e Fausto.
>>
>> Essa rotina era exatamente a que eu usava quando o acesso era feito
>> diretamente através de TIBDataSet (sem o ClientDataSet).
>>
>> Porém agora que acrescentei o ClientDataSet em meu sistema, para reduzir o
>> tempo de transações abertas, não consigo recuperar as imagens que eu gravo.
>>
>> Aparentemente a imagem é gravada de forma danificada, pois vejo que o
>> campo tem conteúdo através do IBExpert, mas na hora que tento recuperar o
>> conteúdo do campo (no momento do Jpg.LoadFromStream) recebo a mensage: "JPEG
>> error #50"
>>
>> To ficando louco com isso, meu banco tem inúmeras imagens e não posso
>> atualizar meu clientes antes de corrigir essa deficiência.
>>
>> Abraços e muito obrigado pelo auxílio que você estão me dando!
>>
>> Fabrício
>>
>>
>> Kleber Caneva escreveu:
>>
>>  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
>>>
>>>
>>
>>
>> ______________________________________________
>> 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