Imagem Banco de Dados...
Estou com um problema q creio ser facíl, mas como sou iniciante naum sei resolver.
Bem, Eu tô querendo usar foto no meu banco de dados, mas não quero q essa foto fique em um campo da tabela eu quero q fique só o caminho da foto e que o objeto TImagem ou outro qualquer localize essa foto para mim e o apresente na tela.
muito obrigado!!
Bem, Eu tô querendo usar foto no meu banco de dados, mas não quero q essa foto fique em um campo da tabela eu quero q fique só o caminho da foto e que o objeto TImagem ou outro qualquer localize essa foto para mim e o apresente na tela.
muito obrigado!!
Douglasf
Curtidas 0
Respostas
Jbspio
03/11/2003
ola amigo!!
Crie um campo no seu banco de dados com tamanho minimo de 30 char.
Coloque o endereco da foto na qual gravou neste campo EX.´C:\CAMINHO\FOTOS\FOTO1.BMP´ depois e so chamar pelo comando do timage Image1.Picture.LoadFromFile(tabelacampo.value);
Forte abraço.
´ Ninquem chega a lugar nenhum se não sabe para aonde quer ir´
Crie um campo no seu banco de dados com tamanho minimo de 30 char.
Coloque o endereco da foto na qual gravou neste campo EX.´C:\CAMINHO\FOTOS\FOTO1.BMP´ depois e so chamar pelo comando do timage Image1.Picture.LoadFromFile(tabelacampo.value);
Forte abraço.
´ Ninquem chega a lugar nenhum se não sabe para aonde quer ir´
GOSTEI 0
Cps.art
03/11/2003
Amigo [b:5173b7084d]jbspio[/b:5173b7084d] , aproveitei a sua dica e tentei fazer como vc. explicou mas não deu certo.
Criei um campo [b:5173b7084d]fotos[/b:5173b7084d] na tabela onde inseri o caminho e nome de cada foto, no DBImage (no Object Inspector) selecionei a tabela e o Campo, depois coloquei a linha abaixo:
[b:5173b7084d]DBImage1.Picture.LoadFromFile(fotos.value);[/b:5173b7084d]
Na checagem da sintase o Delphi dá a seguinte mensagem de erro:
[b:5173b7084d] Undeclared indentifier: ´fotos´.[/b:5173b7084d]
Errei em algum lugar?
Criei um campo [b:5173b7084d]fotos[/b:5173b7084d] na tabela onde inseri o caminho e nome de cada foto, no DBImage (no Object Inspector) selecionei a tabela e o Campo, depois coloquei a linha abaixo:
[b:5173b7084d]DBImage1.Picture.LoadFromFile(fotos.value);[/b:5173b7084d]
Na checagem da sintase o Delphi dá a seguinte mensagem de erro:
[b:5173b7084d] Undeclared indentifier: ´fotos´.[/b:5173b7084d]
Errei em algum lugar?
GOSTEI 0
Douglasf
03/11/2003
Olha eu sou meio iniciante nesse treco mas acho q sei o problema, você esqueceu de por no parentese o nome da tabela e o campo, no meu caso ficou assim:
ImgFoto.Picture.LoadFromFile(TblTesteFotCli.value);
nesse caso eu usei o TImage mas acho q com o DBImage de dar certo tb!
DBImage1.Picture.LoadFromFile(fotos.value); //esse campo fotos vem de onde, tem que ter uma tabela.
ImgFoto.Picture.LoadFromFile(TblTesteFotCli.value);
nesse caso eu usei o TImage mas acho q com o DBImage de dar certo tb!
DBImage1.Picture.LoadFromFile(fotos.value); //esse campo fotos vem de onde, tem que ter uma tabela.
GOSTEI 0
Cps.art
03/11/2003
Olá Douglas, não quer dar certo não.
Deixa eu te explicar melhor o que eu fiz.
Tenho uma tabela chamada [b:a02c1f3cd6]Teste.DBF[/b:a02c1f3cd6]
Os campos dessa tabela são:
[b:a02c1f3cd6]DESCR[/b:a02c1f3cd6] - Campo Caracter com tamanho 30 onde eu descrevo o conteúdo da foto para minha orientação
[b:a02c1f3cd6]FOTOS[/b:a02c1f3cd6] - Campo Caracter com tamanho 30 onde eu inseri o caminho/nome da foto que será exibida ([b:a02c1f3cd6]C:\IMAGENS\FOTO1.BMP[/b:a02c1f3cd6]).
É claro que nos registros seguintes (só coloquei 3 para teste) o nome do arquivo .BMP eu alterei para FOTO2.BMP, FOTO3.BMP, que estão gravadas na pasta IMAGENS.
Então, na linha
[b:a02c1f3cd6] DBImage1.Picture.LoadFromFile([color=blue:a02c1f3cd6]fotos[/color:a02c1f3cd6].value)[/b:a02c1f3cd6]
o parâmetro fotos da linha acima se refere ao nome do campo da minha tabela.
Vale salientar que no DBImage eu já selecionei no Object Inspector, o nome da Tabela (TESTE.DBF) e o nome do campo (FOTOS).
Tambem abri uma DBGrid onde eu visualizo o conteúdo dos campos da tabela, e o esperado é que quando eu selecionasse um registro nessa DBGrid, na janela do DBImage apareceria a imagem da foto correspondente àquele registro.
O que estou achando é que estou manipulando tabelas do DBase/Clipper e, apesar de usar o componente Halcyon no Data Access, que compatibiliza essas tabelas com o Delphi, pode estar dando esse problema.
Você disse que eu não inserir o nome da tabela na linha de comando, e nesse caso como ficaria então?
[b:a02c1f3cd6]DBImage1.Picture.LoadFromFile(teste.fotos.value)[/b:a02c1f3cd6]
Ficaria assim como acima? Eu já tentei e não funcionou, continua dando erro na compilação.
Já tentei com o TImage substituindo o DBImage e nada.
Tambem sou iniciante no Delphi e tô apanhando pra burro.
Conto com a ajuda do pessoal do Forum que tem me ajudado bastante.
Abraços.
Deixa eu te explicar melhor o que eu fiz.
Tenho uma tabela chamada [b:a02c1f3cd6]Teste.DBF[/b:a02c1f3cd6]
Os campos dessa tabela são:
[b:a02c1f3cd6]DESCR[/b:a02c1f3cd6] - Campo Caracter com tamanho 30 onde eu descrevo o conteúdo da foto para minha orientação
[b:a02c1f3cd6]FOTOS[/b:a02c1f3cd6] - Campo Caracter com tamanho 30 onde eu inseri o caminho/nome da foto que será exibida ([b:a02c1f3cd6]C:\IMAGENS\FOTO1.BMP[/b:a02c1f3cd6]).
É claro que nos registros seguintes (só coloquei 3 para teste) o nome do arquivo .BMP eu alterei para FOTO2.BMP, FOTO3.BMP, que estão gravadas na pasta IMAGENS.
Então, na linha
[b:a02c1f3cd6] DBImage1.Picture.LoadFromFile([color=blue:a02c1f3cd6]fotos[/color:a02c1f3cd6].value)[/b:a02c1f3cd6]
o parâmetro fotos da linha acima se refere ao nome do campo da minha tabela.
Vale salientar que no DBImage eu já selecionei no Object Inspector, o nome da Tabela (TESTE.DBF) e o nome do campo (FOTOS).
Tambem abri uma DBGrid onde eu visualizo o conteúdo dos campos da tabela, e o esperado é que quando eu selecionasse um registro nessa DBGrid, na janela do DBImage apareceria a imagem da foto correspondente àquele registro.
O que estou achando é que estou manipulando tabelas do DBase/Clipper e, apesar de usar o componente Halcyon no Data Access, que compatibiliza essas tabelas com o Delphi, pode estar dando esse problema.
Você disse que eu não inserir o nome da tabela na linha de comando, e nesse caso como ficaria então?
[b:a02c1f3cd6]DBImage1.Picture.LoadFromFile(teste.fotos.value)[/b:a02c1f3cd6]
Ficaria assim como acima? Eu já tentei e não funcionou, continua dando erro na compilação.
Já tentei com o TImage substituindo o DBImage e nada.
Tambem sou iniciante no Delphi e tô apanhando pra burro.
Conto com a ajuda do pessoal do Forum que tem me ajudado bastante.
Abraços.
GOSTEI 0
Douglasf
03/11/2003
Blz???
bem acho q já sei o seu problema, vc ja adcionou os fields editor??
Se não presta atenção...
Vc vai clicar com o botão direito em cima do componente TTable(no seu caso a tabela teste) e clicar em Fields Editor... depois que vc clicou vai aparecer uma telinha, nesta tela vc clica com o botão direito novamente em cima dela e clica em add fields.. vai aparecer outra tela para vc e ai vc clica em OK para adcionar todos os campos.
Ai é só vc digitar no local onde quiser...
DBImage1.Picture.LoadFromFile(tblTesteFotos.value)//nesse caso se a tabela tiver com o nome de tblteste e exitir um campo Fotos.
Não se esqueca q naum existe ponto entre a tabela teste e o campo fotos.
Só isso...
Ow... vc conhece uma forma de usar webcam com o delphi???
blz falow!!!
qualquer duvida pode contar comigo!!
bem acho q já sei o seu problema, vc ja adcionou os fields editor??
Se não presta atenção...
Vc vai clicar com o botão direito em cima do componente TTable(no seu caso a tabela teste) e clicar em Fields Editor... depois que vc clicou vai aparecer uma telinha, nesta tela vc clica com o botão direito novamente em cima dela e clica em add fields.. vai aparecer outra tela para vc e ai vc clica em OK para adcionar todos os campos.
Ai é só vc digitar no local onde quiser...
DBImage1.Picture.LoadFromFile(tblTesteFotos.value)//nesse caso se a tabela tiver com o nome de tblteste e exitir um campo Fotos.
Não se esqueca q naum existe ponto entre a tabela teste e o campo fotos.
Só isso...
Ow... vc conhece uma forma de usar webcam com o delphi???
blz falow!!!
qualquer duvida pode contar comigo!!
GOSTEI 0
Cps.art
03/11/2003
:lol:
Olá Douglas, você matou a charada. Funcinou beleza, foi só incluir os Fields como vc. falou.
Na verdade, na linha de comando nem é o nome da tabela+campo ([b:927a132b5c]testefotos.value[/b:927a132b5c]) que eu coloquei, quando eu adicionei os Fields o Delphi criou um [b:927a132b5c]type[/b:927a132b5c]:
[b:927a132b5c]Table1FOTOS: TStringField;[/b:927a132b5c]
então usando um pouco da lógica que eu tenho em Clipper, substituí o [b:927a132b5c]testefotos.value[/b:927a132b5c] por [b:927a132b5c]Table1Fotos.value[/b:927a132b5c] ficando a linha então da seguinte forma:
[b:927a132b5c]Image1.Picture.LoadFromFile(Table1Fotos.value);[/b:927a132b5c] ou
[b:927a132b5c]DBImage1.Picture.LoadFromFile(Table1Fotos.value);[/b:927a132b5c]
Testei o TImage e o DBImage e funcionou nos dois.
As figuras em .BMP funcinou direto, as .JPG deu pau, então inclui no [b:927a132b5c]Uses[/b:927a132b5c] o [b:927a132b5c]Jpeg[/b:927a132b5c], ai ele entende tanto uma como a outra.
Com respeito a usar a WebCam no Delphi eu não sei nada ainda, alias tô pensando em comprar uma WebCam dentro de algum tempo, mas qualquer informação que eu tiver eu passo prá você.
Se vc. quizer enviar email direto pra mim pode mandar:
cps.art@zaapnet.com.br
Agora preciso descobrir uma forma de tratar ERROS, pois numa tabela de + de 2000 registros, se não existir o arquivo BMP ou JPG no campo FOTOS, e navegando numa DBGrid, vai dar erro, e eu quero desviar para uma figura padrão que será exibida sempre que acontecer isso, como por exemplo ´IMAGEM NÃO DISPONÍVEL´ ou coisa parecida.
Mas de qualquer forma já é meio caminho andado e te agradeço muito a colaboração. Estou à sua disposição para qualquer ajuda que eu possa te dar.
Abraços.
Olá Douglas, você matou a charada. Funcinou beleza, foi só incluir os Fields como vc. falou.
Na verdade, na linha de comando nem é o nome da tabela+campo ([b:927a132b5c]testefotos.value[/b:927a132b5c]) que eu coloquei, quando eu adicionei os Fields o Delphi criou um [b:927a132b5c]type[/b:927a132b5c]:
[b:927a132b5c]Table1FOTOS: TStringField;[/b:927a132b5c]
então usando um pouco da lógica que eu tenho em Clipper, substituí o [b:927a132b5c]testefotos.value[/b:927a132b5c] por [b:927a132b5c]Table1Fotos.value[/b:927a132b5c] ficando a linha então da seguinte forma:
[b:927a132b5c]Image1.Picture.LoadFromFile(Table1Fotos.value);[/b:927a132b5c] ou
[b:927a132b5c]DBImage1.Picture.LoadFromFile(Table1Fotos.value);[/b:927a132b5c]
Testei o TImage e o DBImage e funcionou nos dois.
As figuras em .BMP funcinou direto, as .JPG deu pau, então inclui no [b:927a132b5c]Uses[/b:927a132b5c] o [b:927a132b5c]Jpeg[/b:927a132b5c], ai ele entende tanto uma como a outra.
Com respeito a usar a WebCam no Delphi eu não sei nada ainda, alias tô pensando em comprar uma WebCam dentro de algum tempo, mas qualquer informação que eu tiver eu passo prá você.
Se vc. quizer enviar email direto pra mim pode mandar:
cps.art@zaapnet.com.br
Agora preciso descobrir uma forma de tratar ERROS, pois numa tabela de + de 2000 registros, se não existir o arquivo BMP ou JPG no campo FOTOS, e navegando numa DBGrid, vai dar erro, e eu quero desviar para uma figura padrão que será exibida sempre que acontecer isso, como por exemplo ´IMAGEM NÃO DISPONÍVEL´ ou coisa parecida.
Mas de qualquer forma já é meio caminho andado e te agradeço muito a colaboração. Estou à sua disposição para qualquer ajuda que eu possa te dar.
Abraços.
GOSTEI 0