Chrnos 30 Denunciar post Postado Novembro 7, 2013 Vou perguntar mais uma vez, você debugou o seu código? Sabe dizer em que momento está dando o erro dentro do seu código? Pelo que estou supondo vendo o seu código, o seu problema não está no fato de salvar apenas o nome do arquivo na tabela, mas sim na forma como você trata a carga desta imagem no seu dbnavigator1_click... veja bem.... o loadfromfile do componente TImage só funciona quando você informa o caminho correto para a carga da imagem (diretório + nome do arquivo). Se você só salva o nome do arquivo no banco, você tem que em algum lugar do seu código definir o diretório padrão para salvar as imagens e sempre procurar a imagem neste diretório padrão antes de dar o load (preferencialmente incluindo um teste de validação de existência do arquivo no diretório). E eu não vejo isso em nenhum momento no código que postou. Outra coisa: você dá um edit na sua tabela, mas onde está o post para gravar os dados na mesma? Compartilhar este post Link para o post Compartilhar em outros sites
Jore 0 Denunciar post Postado Novembro 7, 2013 Boa tarde amigos, Chrnos Respondendo as suas perguntas: Vou perguntar mais uma vez, você debugou o seu código? Cara eu realmente não sei fazer isto! Na verdade até sei como se faz mais não sei identificar os erros. Sabe dizer em que momento está dando o erro dentro do seu código? Acontece na hora de salvar a imagem. ou seja: Na hora em que eu clico no botão do DBNavigator Salvar. Pelo que estou supondo vendo o seu código, o seu problema não está no fato de salvar apenas o nome do arquivo na tabela, mas sim na forma como você trata a carga desta imagem no seu dbnavigator1_click... veja bem.... o loadfromfile do componente TImage só funciona quando você informa o caminho correto para a carga da imagem (diretório + nome do arquivo). Acho que você matou a charada! Realmente eu não indico o caminho onde ele tem que buscar pela imagem que aparece no DBEdit sabe me dizer onde entra o comando? É assim? Na pasta Teste subpasta Imagens pois deu erro : Unknown picture file extension (.value) Image1.Picture.LoadFromFile(ExtractFilePath(ParamStr(0))+'Testes\Imagens\'+'DataModule1.IBTab_TesteTE_IMGITENS.value') Se você só salva o nome do arquivo no banco, você tem que em algum lugar do seu código definir o diretório padrão para salvar as imagens e sempre procurar a imagem neste diretório padrão antes de dar o load (preferencialmente incluindo um teste de validação de existência do arquivo no diretório). E eu não vejo isso em nenhum momento no código que postou. Acho que é o mesmo caso acima não? Outra coisa: você dá um edit na sua tabela, mas onde está o post para gravar os dados na mesma? Realmente não tem. Onde seria o melhor lugar para eu por ela no final antes do End? Muito obrigado pelas dicas e pela ajuda! PS. Só uma dúvida sabe me explicar porque este meu código funciona perfeitamente se eu simplesmente não usar o ExtractFileName? Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Novembro 7, 2013 Boa tarde amigos, Chrnos Respondendo as suas perguntas: Vou perguntar mais uma vez, você debugou o seu código? Cara eu realmente não sei fazer isto! Na verdade até sei como se faz mais não sei identificar os erros. Quanto a sua questão de como debugar o código, dê uma lida neste link: http://www.dicasdelphi.com.br/tag/debugar/ Sabe dizer em que momento está dando o erro dentro do seu código? Acontece na hora de salvar a imagem. ou seja: Na hora em que eu clico no botão do DBNavigator Salvar. De boa, dizer que é quando clica no botão é o que se espera de um usuário, não de um programador... você tem que identificar exatamente o ponto onde está o problema debugando, o link acima que te passei irá lhe ajudar um pouco nisso rs. Pelo que estou supondo vendo o seu código, o seu problema não está no fato de salvar apenas o nome do arquivo na tabela, mas sim na forma como você trata a carga desta imagem no seu dbnavigator1_click... veja bem.... o loadfromfile do componente TImage só funciona quando você informa o caminho correto para a carga da imagem (diretório + nome do arquivo). Acho que você matou a charada! Realmente eu não indico o caminho onde ele tem que buscar pela imagem que aparece no DBEdit sabe me dizer onde entra o comando? É assim? Na pasta Teste subpasta Imagens pois deu erro : Image1.Picture.LoadFromFile(ExtractFilePath(ParamStr(0))+'Testes\Imagens\'+'DataModule1.IBTab_TesteTE_IMGITENS.value') Aqui temos um problema de erro de programação... primeiro, porque quando você salva o nome da imagem no banco de dados, só vai ter o nome da imagem, não o caminho... então usar o ExtractFilePath é meio inútil aqui, sem contar que você transformou o ponto onde está pegando o retorno do seu BD em uma string ao por o mesmo entre aspas. Seu código aqui deveria estar sendo algo como: Image1.Picture.LoadFromFile('c:\Testes\Imagens\'+DataModule1.IBTab_TesteTE_IMGITENS.value) Lembrando que, se o nome do seu arquivo estiver sendo salvo sem a extensão, o comando acima não irá funcionar porque ainda teria que adicionar a extensão ao final. Outra coisa: você dá um edit na sua tabela, mas onde está o post para gravar os dados na mesma? Realmente não tem. Onde seria o melhor lugar para eu por ela no final antes do End? Ai é questão de como vai estruturar a sua programação... Se você tem um botão em tela para gravar as alterações, o indicado é por nele o tratamento tanto para o inserção quanto para a edição. Muito obrigado pelas dicas e pela ajuda! PS. Só uma dúvida sabe me explicar porque este meu código funciona perfeitamente se eu simplesmente não usar o ExtractFileName? O ExtractFileName extrai o nome do arquivo apenas, eliminando o caminho até ele (ou seja, se no dialog está com valor c:\temp\imagem.jpg, o ExtractFileName vai eliminar o c:\temp\ e lhe dar apenas o nome - não lembro agora se trás a extensão junto)... quando você pega direto do dialog, você pega o caminho completo + o nome do arquivo com a extensão... provavelmente é ai que está a diferença. Compartilhar este post Link para o post Compartilhar em outros sites
Jore 0 Denunciar post Postado Novembro 8, 2013 Olá novamente Chrnos , primeiro quero agradecer por sua ajuda e até pela bronca rs rs Mas, não sou programador (ainda), estou tentando aprender e para isso estou desenvolvendo alguns projetinhos particulares para tentar aprender. Já havia visto o link que você em indicou e mesmo assim continuo com dúvidas. Vou continuar tentando e quem sabe daqui a algum tempo eu aprendo né! 8-) Mais uma vez obrigado! Continuo a minha busca... Compartilhar este post Link para o post Compartilhar em outros sites