[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