ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Buscar imagem

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Lippi
Membro Junior
Membro Junior


Registrado: Terça-Feira, 25 de Novembro de 2008
Mensagens: 378

MensagemEnviada: Qui Nov 06, 2014 9:54 pm    Assunto: Buscar imagem Responder com Citação

Senhores do Delphi, boa noite.

Quando preciso buscar o dado nome (por exemplo), para um componente Edit, faço:

Edit1.Text:=TabelaXnome.AsString;

Agora, preciso buscar um dado registrado em campo Blob, para um componente Image.

Como defino os ?????

Foto.????? := TabelaXimagem.?????
_________________
Longo e difícil é o caminho que, das trevas, nos leva à luz.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
maizena
Colaborador
Colaborador


Registrado: Terça-Feira, 20 de Março de 2012
Mensagens: 1497
Localização: Laguna - SC

MensagemEnviada: Sex Nov 07, 2014 7:50 am    Assunto: Responder com Citação

Não entendi muito bem sua duvida, o que eu entendi é que vc esta gravando a imagem no banco de dados.
Vou te dar uma dica por experiência própria, não grave a imagem no banco grave somente o caminho dela, seu banco vai ficar mais leve, e será muito mais fácil trabalhar na implementação.
_________________
Canal Delphi+ INSCREVA-SE: http://www.youtube.com/channel/UCnVF5ly5PRwZONE-U7xZM6w?feature=watch
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
igormoita
Profissional
Profissional


Registrado: Quinta-Feira, 14 de Janeiro de 2010
Mensagens: 601

MensagemEnviada: Sex Nov 07, 2014 8:26 am    Assunto: Responder com Citação

O maizena tem razão, não é ideal gravar as imagens em um BD, mas com certeza é mais fácil manipulá-las (em um BD) caso permita acesso externo.
Vou te dar uma dica, que eu mesmo utilizo e achei favorável: no caso de querer realmente utilizar um BD de imagens, utilize dois ou mais bancos de dados, um para os dados e outro para armazenas as imagens.
No meu caso, tenho um BD de dados com uma tabela PRODUTO e uma outra tabela PRODUTO_IMAGEM. PRODUTO armazena os dados do produto e PRODUTO_IMAGEM é a relação entre um produto e suas imagens.
Em um outro BD tenho uma tabela chamada IMAGEM_PRODUTO, que armazena o código do produto, da imagem e a própria imagem (type BLOB).
Sempre que adicionar uma imagem, irá gerar um código para ela e será vinculada a um produto, daí gravo nos dois BDs.
Isso aumenta a complexidade e diminui um pouco o desempenho (pois tenho que buscar nos dois BDs para ter o resultado), mas isso facilita a manipulação dos BD de dados (que é a parte realmente importante).

Tenho o código que vc precisa: como jogar do BD para um Image, assim que chegar em casa eu compartilho aqui com vc.
_________________
SEMPRE COLOQUE [RESOLVIDO] NO SEU POST
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail Yahoo Messenger MSN Messenger
DanielChrome
Novato
Novato


Registrado: Sexta-Feira, 18 de Outubro de 2013
Mensagens: 23

MensagemEnviada: Sex Nov 07, 2014 12:46 pm    Assunto: Responder com Citação

Concordo com o pessoal acima. Armazenar imagem no banco é desnecessário.

Mas se mesmo assim preferir assim. O que tem que fazer é carregar os dados é um pouco trabalhoso, mas funciona. SEgue exemplo:

Código:

procedure PCarregaImagem(SqlImagem: TsqlQuery;Image: TImage);
var
   MeuJPEG   : TJPEGImage;
   TmpBmp    : TMemoryStream;
begin
      Try
         TmpBmp := TMemoryStream.Create;
         (SqlImagem.FieldByName('Imagem') as TBlobField).SaveToStream(TmpBmp);
         TmpBmp.Seek(0,soFromBeginning);

         MeuJPEG := TJPEGImage.Create;
         MeuJPEG.LoadFromStream(TmpBmp);

         Image.Picture.Assign(MeuJPEG);
      Finaly
         MeuJPEG.Free;
         TmpBmp.Free;
      End;
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Lippi
Membro Junior
Membro Junior


Registrado: Terça-Feira, 25 de Novembro de 2008
Mensagens: 378

MensagemEnviada: Dom Nov 09, 2014 6:23 pm    Assunto: então ... Responder com Citação

Senhores,

Desde já, agradeço a ajuda de todos.

Eu havia tirado o cósigo a seguir da internet. Isso significa que não é a melhor forma?

Código:
procedure TFm_ClientePF.Button1Click(Sender: TObject);
var
JPG: TJPEGImage; 
begin
  If AbrindoFoto.Execute then
    begin
      Try
          Fm_Dados.CDS_ClientePF.Edit;
          JPG:= TJPEGimage.Create;
          Fm_Dados.CDS_ClientePFRG.LoadFromFile(AbrindoFoto.FileName);
          JPG.LoadFromFile(AbrindoFoto.FileName);
          Identidade.Picture.Assign(JPG);
          JPG.Free;
      Except
        On Exception do
          begin
           JPG.Free;
           MessageBox(Application.Handle, Pchar('É permitido apenas arquivos JPG para imagem!'), Pchar('Falha ao carregar imagem'), mb_OK+mb_iconwarning);
          end;
      end;
    end;
end;

_________________
Longo e difícil é o caminho que, das trevas, nos leva à luz.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
DanielChrome
Novato
Novato


Registrado: Sexta-Feira, 18 de Outubro de 2013
Mensagens: 23

MensagemEnviada: Seg Nov 10, 2014 6:36 am    Assunto: Responder com Citação

Esta forma que postou seve pra carregar a imagem a partir de algum lugar do computador e não do banco de dados. Já a que postei anteriormente busca os dados do banco. Não é que seja a melhor forma, são situações diferentes.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB