Gravar imagem no banco

9 respostas
E

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

9 Respostas

M

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é!

F

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.

M

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é!

F

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.

E

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

E

fsquadro:
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

F

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.

E

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

estou procurando uma solução ainda…vlw

flws

E

consegui!!!

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

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

flw galera e até a próxima

Criado 5 de março de 2007
Ultima resposta 6 de mar. de 2007
Respostas 9
Participantes 3