SALVAR IMAGEM NO POSTGRESQL

OMAR2011 02/06/2012 22:39:38
#403391
Alguém tem código ou rotina que salve uma [txt-color=#e80000]IMAGEM[/txt-color]no banco de dados do Postgresql.
Não quero gravar caminho no banco.
Eu consigo gravar a imagem nos bancos.
Sqlserver,Acesss,Interbase,Firebird,Oracle 10 e 11g.
Os códigos retirados da net não funciona com Postgresql.
Mas esse tal de postgres é o bicho.
Fiz pesquisa na net e não encontrei nada.
Estou usando[txt-color=#007100] VB2010[/txt-color]
Valeu
LLAIA 03/06/2012 06:19:30
#403392
Tem que ver qual o tipo de dados que o campo precisa ter no caso do PG. Já notei que o PG segue muita [Ô]coisa[Ô] do Oracle. No Oracle usamos o tipo de dados Blob pra isso. Já sabe qual tipo de dados seu campo precisa usar para gravar essas imagens.
OMAR2011 03/06/2012 18:06:16
#403422
O campo Imagem do postgres segundo pesquisa e o BYTEA.
O interessante que o código que uso salva em todos os banco
na qual citei acima.

Postgresql não.

Vamos esperar mais resposta.
Valeu.
LLAIA 04/06/2012 10:00:51
#403442
Poste seu código pra facilitar.
OMAR2011 04/06/2012 11:04:14
#403447
Este código peguei do Macoratti.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim conexao As String

conexao = ([Ô]Provider=SQLNCLI10;Server=localhost;Database=Bras2012; Trusted_Connection=yes;[Ô])
[ô]conexao = [Ô]Provider=PostgreSQL OLE DB Provider;Data Source=Localhost;location=Bras2012;User ID=postgres;password=12qw;[Ô]
conn = New OleDbConnection(conexao)

If conn.State = ConnectionState.Open Then conn.Close()
Try

Call tempValue()
Dim fst As New FileStream(Application.StartupPath + [Ô]    emp.dat[Ô], FileMode.Open)
Dim arrbyte(fst.Length) As Byte
fst.Read(arrbyte, 0, arrbyte.Length)
fst.Close()
Dim s1 As String = [Ô]INSERT INTO Figura(Cod,Figura)VALUES([ô][Ô] & txtCod.Text & [Ô][ô], ?)[Ô]
Dim cmnd As New OleDbCommand(s1, conn)
Dim par As New OleDbParameter([Ô]@Figura[Ô], OleDbType.LongVarBinary)
par.Value = arrbyte
par.Size = arrbyte.Length
cmnd.Parameters.Add(par)
conn.Open()
cmnd.ExecuteNonQuery()
MsgBox([Ô]Registrado com sucesso[Ô])
conn.Close()

Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
LUCASVAZ 04/06/2012 11:29:39
#403453
No PG eu não sei, mas o que eu faria é o seguinte:

Pegaria a imagem, converteria ela para o formato binário e gravaria no banco.

Depois apenas faria o caminho contrário para recuperar a imagem.

Att,

Lucas
ROMERO.KCOAL 04/06/2013 11:22:10
#424368
Resposta escolhida
Ola.. vi que esta com problema em salvar imagem no PostGreSQL.. bem.. para esta finalidade precisei procurar muito e encontrei em um site russo depois de 2 dias de busca....

referencia:
http://www.sql.ru/forum/actualthread.aspx?tid=298680

No postgre não encontrei outra forma a não se esta

para exprtar uma imagem

lo_export

para importar (salvar no banco)

lo_import

Exemplos

Exportar (recuperar a imagem salva)
SQL = [Ô]SELECT lo_export(tb_imagens.img_imagem, [ô][Ô] & App.Path & [Ô]\foto.jpg[ô]) FROM tb_imagens WHERE img_chave = [ô][Ô] & Chave & [Ô][ô][Ô]

Imporat (Salvar no banco)
SQL = [Ô]INSERT INTO tb_imagens (img_chave, img_imagem,img_nome) VALUES ([ô][Ô] & Chave & [Ô][ô], lo_import([ô][Ô] & App.Path & [Ô]\foto.jpg[Ô] & [Ô][ô])[Ô]

O único inconveniente que anchei foi que ele não salva em rede.. ou seja.. quem faz a importação é o próprio servidor de banco de dados.. portanto acredito que deva criar uma pasta compartilhada e desta forma indicar esta pasta como a pasta padrão da imagem...

Espero ter ajudado...
OMAR2011 04/06/2013 11:42:53
#424369
Antes de mais nada agradecido fico.
Eu apelei com PostgreSql.
Desinstalei tudo do Postgreslq.
Mas vou testar.
Obrigado.
Tópico encerrado , respostas não são mais permitidas