Fórum Não adiciona foto no ClientDataSet (era:Código não funciona) #344486

14/08/2007

0

Alguém pode me ajudar com esse código, não sei o que está errado. Ele não funciona, ou seja, não adiciona a foto no ClientDataSet.

var
  Nome, Path : string;
  J : TJPEGImage;
  P: TMemoryStream;
begin
  if OpenDialog.Execute then
  begin
      Nome := ExtractFileName(OpenDialog.FileName);
      Path := OpenDialog.FileName;
      if FotoCDS.Locate(´nome´,UpperCase(Nome),[]) then
      begin
        MessageBox(Handle,´Foto já cadastrada´,´Atenção´,MB_OK + MB_ICONEXCLAMATION);
        btnAddFoto.Click;
      end
      else
      begin
        P := TMemoryStream.Create;
        J := TJPEGImage.Create;
        J.LoadFromFile(Path);
        J.CompressionQuality := 70;
        J.Compress;
        J.SaveToStream(P);
        P.Seek(0,soFromBeginning);
        FotoCDS.Insert;
        FotoCDS.FieldByName(´nome´).AsString := UpperCase(Nome);
        TBlobField(FotoCDS.FieldByName(´foto´)).LoadFromStream(P);
        FotoCDS.Post;
        J.Free;
        P.Free;
      end;
  end;  



Marcelo.mileris

Marcelo.mileris

Responder

Posts

15/08/2007

Alexsandroraulino

Olá
Tu não precisa carregar o jpeg, criando somente a memorystream, será o necessário para manipulação.

Segue abaixo o exemplo.


procedure TForm.ManipulateExecuteOpenDialog;
var
loMemoryStream: TMemoryStream;
lsPath : String ;
begin
inherited;
try
if OpenDialog.Execute then
begin
lsPath := OpenDialog.FileName;

if FileExists(lsPath) then
begin
loMemoryStream := TMemoryStream.Create;
loMemoryStream.LoadFromFile(lsPath);

ClientDataSet.LoadFromStream(loMemoryStream);
end;
end;

except
on e: exception do
Mensagem.Erro(´Arquivo seleciona inválido!´, e.message);
end;
end;


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar