gravar imagem no banco  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
evandrosantos
JavaTeenager

Membro desde: 15/12/2006 09:37:51
Mensagens: 194
Offline

e ai pessoal...

bom, tenho um programa para cadastros e q tb tem a opção de se cadastrar uma foto.

meu problema é o seguinte:

como faço para inserir a imagem num campo do tipo IMAGE do sql, digo a imagem msm não o caminho.

já pesquisei no fórum e no google mas não encontrei o que eu preciso.

se alguém souber de algum link ou puder me ajudar de qualquer maneira, a ajuda será mto bem-vinda.

mto obrigado a todos pela atenção.

flws
maquiavelbona
JWizard
[Avatar]

Membro desde: 29/06/2006 09:06:51
Mensagens: 2447
Localização: São Paulo - SP
Offline

Bom dia!

Tens alguma necessidade estupidamente essencial, do tipo se você não fizer Angra I e II vão explodir, que lhe obrigue a fazer uma coisa dessas?
Os bancos trabalham de maneiras diferentes sobre gravar arquivos binários, o mais comum é em campos BLOB. Procure por "insert sql blob".
Mas ainda assim aconselho a somente gravar o caminho.

Até!

----------------------------------------------------------------
"Within a few years a simple and inexpensive device, readily carried about, will enable one to receive on land or sea the principal news, to hear a speech, a lecture, a song or play of a musical instrument, conveyed from any other region of the globe. "
Nikola Tesla - A means for furthering Peace (1905)

"Gedanken ohne Inhalt sind leer, Anschauungen ohne Begriffe sind blind."
Immanuel Kant - Kritik der reinen Vernunft (1781)
fsquadro
GUJ Master
[Avatar]

Membro desde: 10/07/2006 17:19:04
Mensagens: 1197
Localização: Florianópolis - SC
Offline

Evandro,

Qual banco você está utilizando?

Bom para inserir no PostgreSQL, você pode fazer da seguinte maneira:

INSERT INTO tabela (imagem) VALUES (pg_escape_bytea(imagem.jpg))

O campo imagem no banco tem q estar definido como um bytea.

Espero ter ajudado.

"Coisas boas estão dentro de pequenos arquivos .jar"


Fernando Quadro
Blog
twitter
LinkedIn
maquiavelbona
JWizard
[Avatar]

Membro desde: 29/06/2006 09:06:51
Mensagens: 2447
Localização: São Paulo - SP
Offline

Opa!

Essa função e tipo de campo existe para Oracle ou MySql ou Firebird? Esse tipo de dado (bytea) é exclusivo do PostgreSQL, tal como a função que ele trabalha. E se a aplicação for rodar em MySQL? Oracle?
Gravar binários no banco atrela a sua aplicação ao banco, limitando e dificultando uma troca de banco de dados.

Até!

----------------------------------------------------------------
"Within a few years a simple and inexpensive device, readily carried about, will enable one to receive on land or sea the principal news, to hear a speech, a lecture, a song or play of a musical instrument, conveyed from any other region of the globe. "
Nikola Tesla - A means for furthering Peace (1905)

"Gedanken ohne Inhalt sind leer, Anschauungen ohne Begriffe sind blind."
Immanuel Kant - Kritik der reinen Vernunft (1781)
fsquadro
GUJ Master
[Avatar]

Membro desde: 10/07/2006 17:19:04
Mensagens: 1197
Localização: Florianópolis - SC
Offline

Maquiavel,

Esta função realmente é nativa do postgreSQL, e não tenho conhecimento se existem similares nos outros bancos que você questionou.
E concordo com você, que salvar as imagens no banco amarra a aplicação a um certo banco, e para uma migração posterior, com certeza haverá problemas.
Caso, ele realmente julgue necessário salvar a imagem no banco, e este seja postgresql, está ai a função.

Espero realmente ter ajudado.

"Coisas boas estão dentro de pequenos arquivos .jar"


Fernando Quadro
Blog
twitter
LinkedIn
evandrosantos
JavaTeenager

Membro desde: 15/12/2006 09:37:51
Mensagens: 194
Offline

então, estou gravando a imagem direto no banco pq tive que migrar este programa para Java e os dados já estavam sendo gravados desta maneira.

vou ver se encontro algo que possa me ajudar.

mto obrigado pela dica.

flws
evandrosantos
JavaTeenager

Membro desde: 15/12/2006 09:37:51
Mensagens: 194
Offline

fsquadro wrote:Evandro,

Qual banco você está utilizando?

Bom para inserir no PostgreSQL, você pode fazer da seguinte maneira:

INSERT INTO tabela (imagem) VALUES (pg_escape_bytea(imagem.jpg))

O campo imagem no banco tem q estar definido como um bytea.

Espero ter ajudado.



então eu uso o SQL Server...acho que isso não funciona pra mim...

mas mto obrigado
fsquadro
GUJ Master
[Avatar]

Membro desde: 10/07/2006 17:19:04
Mensagens: 1197
Localização: Florianópolis - SC
Offline

Evandro,

Vou ficar te devendo, pois pra MS SQL Server, eu não tenho conhecimento, se fosse postgreSQL ou Oracle, poderia lhe ajudar.

Abraço e boa sorte.

"Coisas boas estão dentro de pequenos arquivos .jar"


Fernando Quadro
Blog
twitter
LinkedIn
evandrosantos
JavaTeenager

Membro desde: 15/12/2006 09:37:51
Mensagens: 194
Offline

mesmo assim te agradeço mto pela atenção

estou procurando uma solução ainda...vlw

flws
evandrosantos
JavaTeenager

Membro desde: 15/12/2006 09:37:51
Mensagens: 194
Offline

consegui!!!

se alguém precisar fazer isso...esses links podem ajudar...

http://www.guj.com.br/posts/list/14312.java

http://www.devmedia.com.br/articles/viewcomp.asp?comp=1994&hl=

flw galera e até a próxima
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team