GARANTIR DESCONTO

Fórum MemoryStream loadfromfile não funciona #508192

22/01/2015

0

Prezados,

Estou tentando salvar várias imagens (JPG) em uma tabela com campos BLOB. Para carregar uma imagem eu faço o seguinte:
 if (OpenPictureDialog1.Execute) then
  begin
   tbPaginas.Insert;
    ms := TMemoryStream.Create;
   try
     ms.LoadFromFile(OpenPictureDialog1.FileName);
     ms.Position := 0;
     TBlobField(tbPaginas.FieldByName('IMAGEM')).LoadFromStream(ms);

   finally
     ms.Free;
   end;
  tbPaginasCAPITULO.AsInteger := tbCapitulosCODIGO.AsInteger;
  tbPaginasNUM_PAGINA.AsInteger := 1;
  tbPaginas.Post;
 end;


Entretanto, eu preciso carregar várias imagens de uma vez e é aí que estou com problema, modifiquei a função para a seguinte:
 if (OpenPictureDialog1.Execute) then
  begin
   for i := 0 to OpenPictureDialog1.Files.Count-1 do
     begin
      tbPaginas.Insert;
      ms := TMemoryStream.Create;
      try
       ms.LoadFromFile( TFileName(OpenPictureDialog1.Files[i]) );
       ms.Position := 0;
       TBlobField(tbPaginas.FieldByName('IMAGEM')).LoadFromStream(ms);
      finally
       FreeAndNil(ms);
      end;
       tbPaginasCAPITULO.AsInteger := tbCapitulosCODIGO.AsInteger;
       tbPaginasNUM_PAGINA.AsInteger := 1;
       tbPaginas.Post;
     end;
  end;


Porém, o loadfromfile do memorystream não está funcionando, pois quanto tento salvar o campo blob está vazio.
Alguma ideia de coo resolver isso?
Dannicléo Teles

Dannicléo Teles

Responder

Posts

22/01/2015

Dannicléo Teles

Resolvi o problema, acontece que eu estava liberando o memorystream antes de salvar a imagem no banco.
Responder

Gostei + 0

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

Aceitar