[firebase-br] ClientDataSet Não Salva Imagens no Banco

Fausto fausto.s.a em uol.com.br
Qua Nov 29 11:15:52 -03 2006


Bem ai vai a que eu utilizo...
Detalhe... tudo isto ai abaixo eu consegui pesquisando as msgs 
anteriores da lista..
[]´s
Fausto

*Para gravar:*
procedure TParamForm.GravaLogo;
var BS:TStream;
    Imagem : TJPEGImage;
begin
  with DataLojas do begin
    FotoProDialog.Title := 'Selecione um logotipo';
    if FotoProDialog.Execute then begin
      BS:= CdsPar.CreateBlobStream((DataLojas.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;
****************************
*Para ler:*
var BS:TStream;
    Imagem : TJPEGImage;
begin
  DataLojas.CdsPar.Open;
  Logo.Picture := nil;
  BS:= DataLojas.CdsPar.CreateBlobStream((DataLojas.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;
  Fundo.Picture := nil;
  BS:= DataLojas.CdsPar.CreateBlobStream((DataLojas.CdsParFUNDO as 
TBlobField), BMREAD);
  if BS.Size > 0 then  // Verifica se o registro tem imagens gravadas
  begin
    Imagem := TJPEGImage.Create;
    Imagem.LoadFromStream(BS);
    Fundo.Picture.Assign(Imagem);
    BS.FREE;
    Imagem.Free;
  end;
end;
************************
Stanley Jones escreveu:
> pessoal,
>
> ja tentei de tudo. não consigo gravar imagens no banco (firebird 1.5.2) 
> usando tclientdataset e tsoapconection.
> o código é executado normalmente, sem nenhum erro. so que a imagem não vai 
> para o banco. qdo troco os
> componentes para ibx, ou até mesmo os da paleta interbase, que fazem conexão 
> direta com o banco, funciona
> direitinho, acontece que minha aplicação tem que usar o tsoapconection e 
> tclientdataset porque é acessada pela web.
> será que é um bug no clientdataset ou então qual é o segredo que ainda não 
> descobri????
> vejam o código.
>
> var
>   ImageJPG: TJPEGImage;
>   ImageMST: TMemoryStream;
> begin
>   try
>     ImageJPG := TJPEGImage.Create;
>     ImageMST := TMemoryStream.Create;
>     ImageJPG.Assign(Image1.Picture);
>     ImageJPG.SaveToStream(ImageMST);
>     ImageMST.Position := 0;
>     tbAux.CommandText := 'update fichas set fichas.foto = :foto where 
> fichas.nroficha = 2';
>     tbAux.Params.ParamByName('FOTO').LoadFromStream(ImageMST, ftBlob);
>     tbAux.Execute;
>     ImageJPG.Free;
>     ImageMST.Free;
>     ShowMessage('Foto gravada com sucesso.');
>   except
>     on E: Exception do
>       begin
>         ShowMessage('Problemas na tentativa de gravar o registro.' + #13 + 
> E.Message);
>         ImageJPG.Free;
>         ImageMST.Free;
>         Exit;
>       end;
>   end;
>
> Alguem poderia me ajudar? 
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>   




Mais detalhes sobre a lista de discussão lista