Fórum Ajuda com imagem jpeg #425162
01/10/2012
0
então eu gostria da ajuda de vcs em um exemplo assim , na pasta do meu aplicativo uma pasta com nome fotos.
no bco de dados um campo com nome foto, type A size 50.
no form carregar a foto pelo componente TImage, apos carregar a foto, no botão Gravar, gravaria o nome da minha foto da pasta fotos exemplo: coruja.jpeg e gravar no campo foto do bco de dados, coruja.jpeg.
sendo que terei no form o componente Dbnavigator. que ao clicar em avançar ou voltar me exiba a foto, do registro correnponde, exemplo no bco codigo 4 contem a foto coruja.jpeg ai exibi a foto. se codigo 8 for tatu.jpeg a mesma coisa, claro que eu não fique preso só em jpeg que aceite bmp,gif, preferencia sendo jpeg mais leve.
eu usa tbela e bco paradox. e neste form dbedits de outro dados nome etc.
conto com a ajuda de vcs, desde já agradeço.
Gilvanio Gonçalves
Curtir tópico
+ 0Posts
01/10/2012
Marcos Iwazaki
mas sobre a duvida que tem... colocar imagem no banco eu não aconselho pois imagens são grandes e vao encher o banco vai deixar essa transmissão mais lenta. Tudo isso depende de como vai ser usado seu sistema. Mas imagine 20 terminais acessando seu sistema ao mesmo tempo... e ainda são aqueles usuario q não tem paciencia p deixar carregar a imagem e fica indo p o next, next... imagina agora, alem de tudo isso na empresa usa wireless...
Eu aconselho colocar uma pasta compartlilhada no servidor e nas maquinas terminais vc mapeia este diretorio.. por exemplo no servidor a pasta é d:\sistema\fotos. Nas maquina terminais e até mesmo no proprio servidor vc faz um mapeamento para esta foto sempre na mesma letra exemplo z:\fotos
Esse z:\fotos vc deixa como parametro de sistema caso precise mudar.
-----------------------------------------
Agora sobre o teu problema se quer ainda usar as imagens no banco aconselho a usar o TDBImage, que ja carrega automatico as fotos.
Outra coisa se quiser carregar fotos do tipo gif, png e tal.. no delphi xe3 eles acho q ja esta vindo como nativo agora nos delphi q não vir nativo vc tem q instalar uma biblioneca.
Gostei + 0
01/10/2012
Gilvanio Gonçalves
mas sobre a duvida que tem... colocar imagem no banco eu não aconselho pois imagens são grandes e vao encher o banco vai deixar essa transmissão mais lenta. Tudo isso depende de como vai ser usado seu sistema. Mas imagine 20 terminais acessando seu sistema ao mesmo tempo... e ainda são aqueles usuario q não tem paciencia p deixar carregar a imagem e fica indo p o next, next... imagina agora, alem de tudo isso na empresa usa wireless...
Eu aconselho colocar uma pasta compartlilhada no servidor e nas maquinas terminais vc mapeia este diretorio.. por exemplo no servidor a pasta é d:\sistema\fotos. Nas maquina terminais e até mesmo no proprio servidor vc faz um mapeamento para esta foto sempre na mesma letra exemplo z:\fotos
Esse z:\fotos vc deixa como parametro de sistema caso precise mudar.
-----------------------------------------
Agora sobre o teu problema se quer ainda usar as imagens no banco aconselho a usar o TDBImage, que ja carrega automatico as fotos.
Outra coisa se quiser carregar fotos do tipo gif, png e tal.. no delphi xe3 eles acho q ja esta vindo como nativo agora
nos delphi q não vir nativo vc tem q instalar uma biblioneca.
como disse não desejo gravar a imagem no bco, e entendi quando a mapear a pasta fotos na rede, como eu disse vi varios exemplos e foi no google, não achei no tipo de rotina que expliquei acima, se Alguem por gentileza puder portar o exemplo desta rotina fico grato. e esqueci no form tem o botão carregar foto. se caso eu tivesse achado algo no google não tomaria o tempo de vcs pedindo ajuda, obrigado.
Gostei + 0
02/10/2012
William
[url]https://www.devmedia.com.br/como-gravar-caminho-de-imagens-no-banco-de-dados-e-exibi-las-depois/25003[/url]
Não sei se ajuda nas suas dúvidas, mas pelo menos pode direcionar vc.
Gostei + 0
02/10/2012
Marcos Iwazaki
talvez tenha que alterar algumas coisas p ficar mais do seu jeito.
o um detalhe crie o campo com o nome do arquivo como string, e em vez de ter um outro campo com o caminho completo. Que pode variar muito e acabar sendo grande. deixe isso como um parametro geral. Que nem eu expliquei acima.
Se vc tiver fotos de Clientes e Produtos
Crie um parametro para Clientes e outro p Produtos.
Outra dica sobre isso... no meu caso eu posso colocar qtas fotos (no meu caso pode ser qq arquivo) o usuario quiser, então para não ter problema do diretorio ficar muito cheio e começar a demorar p pesquisar depois. eu pego o id_cliente por exemplo como pasta dentro da pasta de cliente.
se minha pasta de cliente = c:\sistema\clientes
a pasta do meu cliente 51 vai ser c:\sistema\clientes\51.
tudo isso vc vai conseguir fazer seguindo o exemplo do nosso amigo q postou um artigo.
Caso tiver dificuldade em entender ou modificar o exemplo q o amigo postou.. é so postar aqui.
flw
Gostei + 0
02/10/2012
Gilvanio Gonçalves
[url]https://www.devmedia.com.br/como-gravar-caminho-de-imagens-no-banco-de-dados-e-exibi-las-depois/25003[/url]
Não sei se ajuda nas suas dúvidas, mas pelo menos pode direcionar vc.
vi o exemplo baixei os codigo, e da um monte de erros pra mim por componentes usados que eu não tenho, ai fica dificil testar o exemplo, e no exemplo usa firebird + IBExpert, no meu projeto uso tabela, meu delphi é o 7 bco PARADOX.
alguém, poderia ver o exemplo e adptar ao funciomanto para mim como citei no inicio do post, e postara aqui pra mim por favor?
as unicas coisas que não preciso do exemplo é label dbgrid e edit.
conto com a ajuda de vcs amigo, e obrigado.
obs. não estou abusando da o vontade de vcs em pedir o codigo adaptado, é que não consegui adaptar o codigo do exemplo para o meu aplicativo, tentar eu tei, mas muita coisa não entendi,
assim não tive sucesso.
Gostei + 0
02/10/2012
Marcos Iwazaki
Não vou poder ajudar nisso.
Por curiosidade, tem algum movivo para estar usando paradox?
Pois ele é bem limitado e bem ruim para se usar em um aplicativo comercial.
Aconselho a aprender o firebird. Que é o banco mais usado pela comunidade delphi, e assim vc vai encontrar mais exemplos tbm.
Gostei + 0
02/10/2012
Deivison Melo
Caso não conseguir migrar a solução para paradox, mencionar quais problemas encontrados para que com isso podermos ajudar da melhor forma possível.
É normal dar manutenção em sistemas legados e terem sido concebidos em banco de dados como access, paradox e etc...
Então qualquer dúvida mencionar!
Gostei + 0
02/10/2012
William
O meu exemplo foi usando DBExpress, mas basicamente todos os DataSets trabalham de forma semelhante, o que pode ocorrer são algumas funcionalidades à mais entre eles(ZEOS, ADO, DBEXPRESS), mas nesse exemplo usei o básico.
Gostei + 0
02/10/2012
Gilvanio Gonçalves
O meu exemplo foi usando DBExpress, mas basicamente todos os DataSets trabalham de forma semelhante, o que pode ocorrer são algumas funcionalidades à mais entre eles(ZEOS, ADO, DBEXPRESS), mas nesse exemplo usei o básico.
Engine = BDE, como disse uso Tabelas, datasource, para visualizar minha tabelas database desktop, uso data module,
e neste for onde vai cadastrar,exibir,alterar e excluir a foto, tenho dbedits e dbnavigator.
e a tabela é tblcliente.
campo = codcliente type I , primary key, campo foto = A 50
Gostei + 0
02/10/2012
William
1 - Vc terá que aumentar o tamanho desse campo foto, pq teremos que gravar todo o caminho da imagem nesse campo, eu geralmente coloco 150 mas vai de cada um.
2 - Insira no seu form um componente OpenDialog da paleta Dialog, essa janela deverá ser executada sempre que for pressionado um determinado botão, como no meu exemplo.
3 - Vc precisa atribuir o caminho da imagem que foi selecionada no OpenDialog através da propriedade FileName para o seu campo foto, claro a tabela tem q estar em estado de edição ou inserção.
4 - Finalizando essa parte é só gravar, não me lembro qual o comando no BDE, mas geralmente é POST.
Para começar é isso, qualquer coisa posta aí....
Gostei + 0
02/10/2012
Gilvanio Gonçalves
Caso não conseguir migrar a solução para paradox, mencionar quais problemas encontrados para que com isso podermos ajudar da melhor forma possível.
É normal dar manutenção em sistemas legados e terem sido concebidos em banco de dados como access, paradox e etc...
Então qualquer dúvida mencionar!
no meu delphi que é o 7 não encontrei estes componentes
e nao entendi o que são eles?
TSQLConnection?
TSQLQuery?
isto é uma query? qryAux
qryDados?
qryAux.SQLConnection := FConexao;?
dspDados := TDataSetProvider?
cdsDados é uma tabela?
no exemplo so se refere a estes componentes:
1 - TLabel // não vou precisar
1 - edit // não vou precisar
1 - TIimage
1 -dbgrid.// não vou precisar
4 - TBitbtn
não diz nada a respeito do componentes usados para banco de dados
tipo query, tipo de ligção e tals.
no codigo fonte ao rodar da erros de componentes, assim não tenho como
ver o funcionamento e tentar adaptar para o meu projeto.
tentei fazer um novo acompanhando as codigos, mas garrei na questão
dos componentes de acesso a dados.
dê uma olha no link do exemplo.
meu Projeto : 1 form engine BDE bco paradox, tabela
4 botoes e dbedits e um dbnavigator.
modo de gravar post;
Gostei + 0
02/10/2012
William
Se vc está usando BDE então não precisar do SQLConnection.
Gostei + 0
02/10/2012
Gilvanio Gonçalves
Se vc está usando BDE então não precisar do SQLConnection.
Desculpe mas não consegui, mesmo vc dizendo para substituir qry pela tabela, tem partes no codigo, que não sei o que devo tirar, conection , TSQLConnection,TDataSetProvider,TClientDataSet. etc. não consegui mesmo adaptar usando tabela.
como ninguém se dispos a postar o codigo do exemplo aqui migrado para paradox eu deixo pra lá, agrdeço a todos por suas opniões e sugestões, que foi apenas o que consegui aqui.
quanto a questão do uso do paradox e não o firebird, como eu existe muitos iniciantes em delphi que ainda estão em paradox.
obrigado a todos, aos moderadores topico não resolvido.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)