 |
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
Lippi Membro Junior

Registrado: Terça-Feira, 25 de Novembro de 2008 Mensagens: 378
|
Enviada: Qui Nov 06, 2014 9:54 pm Assunto: Buscar imagem |
|
|
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 |
|
 |
maizena Colaborador


Registrado: Terça-Feira, 20 de Março de 2012 Mensagens: 1497 Localização: Laguna - SC
|
Enviada: Sex Nov 07, 2014 7:50 am Assunto: |
|
|
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 |
|
 |
igormoita Profissional


Registrado: Quinta-Feira, 14 de Janeiro de 2010 Mensagens: 601
|
Enviada: Sex Nov 07, 2014 8:26 am Assunto: |
|
|
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 |
|
 |
DanielChrome Novato

Registrado: Sexta-Feira, 18 de Outubro de 2013 Mensagens: 23
|
Enviada: Sex Nov 07, 2014 12:46 pm Assunto: |
|
|
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 |
|
 |
Lippi Membro Junior

Registrado: Terça-Feira, 25 de Novembro de 2008 Mensagens: 378
|
Enviada: Dom Nov 09, 2014 6:23 pm Assunto: entã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 |
|
 |
DanielChrome Novato

Registrado: Sexta-Feira, 18 de Outubro de 2013 Mensagens: 23
|
Enviada: Seg Nov 10, 2014 6:36 am Assunto: |
|
|
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 |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|