Pessoal...
Finalmente consegui fazer funcionar o armazenamento e visualização das
imagens. (ficou ótimo)
A solução foi alterar a String de conexão, pois existe um parâmetro que diz
se os campos Bytea serão convertidos em LO, e era exatamente isso que
ocorria.
Optei por usar campo tipo Bytea pela praticidade e pelo fato de ter que
armazenar milhares de imagens pequenas.
Parece-me que o campo tipo OID é melhor quando são arquivos grandes.
Programo em Visual FoxPro 9.0 e estou desenvolvendo uma aplicação Desktop,
então ficou assim:
A) Para salvar a imagem:
1- Capturo a imagem de uma WebCam utilizando uma dll free Ezvidcap.
2- Converto essa imagem em uma JPG compactada utilizando uma classe
baseada na GDI+
3- Converto a JPG em uma String utilizando a função FileToString() do
VFP.
4- Gravo essa String em um campo Memo de um Cursor Adapter.
5- Concluo a insersão com o TableUpdate()
B) Para visualizar a imagem:
1- Selecione o registro com a imagem através de um Select comum
2- Converto o campo da imagem em um arquivo JPG utilizando a função
StringToFile() do VFP
3- Mostro a imagem em um objeto tipo Image
Att. Valdo:
Não sei programar em Java, mas acho que é até mais simples e vi
exemplos pesquisando no Google.
Se eu encontrar novamente te mando.
Abraços e obrigado a todos.
Vanderlei Marcos Kichel
SetaDigital
----- Original Message -----
From: "Zro" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, August 29, 2007 2:14 PM
Subject: Re: [pgbr-geral] Imagens no Postgres
Caro Vanderley,
estou acompanhado a discursão, justamente porque estou com o mesmo problema.
Estou implementando uma peque aplicação em Java com PostGreSQL, na estou
tentando salvar as imagens direto no banco.
Se fosse possível você me enviar o código mencionado abaixo, ficaria muito
grato.
Com base no seu codigo, acho que identificarei e resolverei meus erros e
minhas
dúvidas.
Desde já muito obrigado!
Um abraço,
Att,
Valdo
Citando Antonio Nascimento <[EMAIL PROTECTED]>:
> * Vanderlei
>
> Antonio
>
> On 8/29/07, Antonio Nascimento <[EMAIL PROTECTED]> wrote:
> >
> > Vanderley,
> >
> > O problema que vc está tendo não é fruto do JPG ter códigos estranhos...
> > eu fiz uma aplicação em java e insiro tanto jpg, jpeg, gif, png...
> > formatos
> > de áudio e vídeo e não tem problema algum. Agora já vi pessoas com
> > problema
> > com aplicações PHP que tinham que tratar alguns caracteres antes de
> > mandar
> > inserir no banco. Provavelmente vc tem que tratar tb alguns caracteres
> antes
> > de mandar inserir usando o Visual FoxPro, que particularmente não
> > conheço.
> >
> > Se vc quiser código em java que manipula bytea posso enviar para o seu
> > email em pvt.
> >
> > Antonio
> >
> >
> >
> > On 8/28/07, Vanderlei (SetaDigital) <[EMAIL PROTECTED]> wrote:
> > >
> > > Oi Antonio...
> > >
> > > Estou usando o Visual FoxPro 9.0 com conexão ODBC.
> > > É uma aplicação Desktop para o segmento comercial.
> > > E preciso armazenar as fotos dos produtos e dos clientes que são
> > > capturadas com uma WebCam.
> > >
> > > Na hora de gravar no campo Bytea grava apenas algumas letras, acho que
> > > é
> > > pq a JPG é cheia de códigos estranhos e deve estar conflitando com
> > > algum
> > > código de controle do Postgres...
> > >
> > > Quando converto a JPG para Binary o Postgres retorna um erro dizendo
> > > que
> > > a imormação é do tipo LO e por isso não grava em campo Bytea.
> > >
> > > Até já consegui gravar em campo OID da seguinte maneria:
> > >
> > > 1-Converto a JPG em uma String
> > > 2-Converto a String em Binary
> > > 3-Uso o Insert normalmente (deta maneira não precisa do lo_import)
> > >
> > > Mas não consegui fazer o processo invertido.. de trazer o OID para o
> > > terminal, pois o lo_expot grava no servidor.
> > >
> > > E na verdade pelas características das imagens acho melhor usar o
> > > Bytea
> > > (muitas imagens de tamanho pequeno e somente para visualização)
> > >
> > > Abraços e ainda na luta :)
> > >
> > > Vanderlei.
> > >
> > >
> > >
> > > ----- Original Message -----
> > > *From:* Antonio Nascimento <[EMAIL PROTECTED]>
> > > *To:* Comunidade PostgreSQL
> Brasileira<[email protected]>
> > > *Sent:* Monday, August 27, 2007 10:48 PM
> > > *Subject:* Re: [pgbr-geral] Imagens no Postgres
> > >
> > > Vanderlei,
> > >
> > > Na inserção OID (large object) vc precisa fazer o upload do arquivo
> > > do
> > > cliente para o servidor para realizar o lo_import e para visualizar vc
> > > precisa realizar o upload do lo_export para um "servidor web". Com
> > > bytea
> vc
> > > falou em problemas na gravação ... vc está usando qual linguagem de
> > > programação?
> > >
> > > Antonio
> > >
> > >
> > >
> > > On 8/27/07, Vanderlei (SetaDigital) <[EMAIL PROTECTED]>
> > > wrote:
> > > >
> > > > Pessoal....
> > > >
> > > > Esta é a minha primeira mensagem no grupo...
> > > > Programo em VFP e estou migrando de DBF para Postgres...
> > > > Estou gostando bastante e já está quase tudo funcionando...
> > > >
> > > > Mas estou tendo dificuldades com as Imagens...
> > > > Testei com campos OID e Bytea mas até agora não consequi um
> > > > resultado
> > > > legal.
> > > >
> > > > Com OID estou tendo dificuldades nas funções lo_import e lo_export,
> > > > que são executadas no Server-Side...
> > > > E preciso inserir as imagens que estão no lado cliente e depois
> > > > traze-las de volta para exibição.
> > > >
> > > > E o Bytea está gravando somente uma parte da string que contém a
> > > > imagem...
> > > >
> > > > Tudo que puderem me mandar de material/exemplos será bem vindo.
> > > >
> > > > Abraços a todos.
> > > >
> > > >
> > > > Vanderlei Marcos Kichel
> > > > [EMAIL PROTECTED]
> > > >
> > > > _______________________________________________________
> > > > SetaDigital Comércio de Sistemas Gerenciais Ltda
> > > > Rua Voluntários da Pátria, 1415 Sala 302 - Centro
> > > > Cascavel - Paraná - Cep 85.812-160
> > > > Telefone: (45) 3222-7511
> > > > www.setadigital.com.br
> > > >
> > > > _______________________________________________
> > > > pgbr-geral mailing list
> > > > [email protected]
> > > > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> > > >
> > > >
> > > ------------------------------
> > >
> > > _______________________________________________
> > > pgbr-geral mailing list
> > > [email protected]
> > > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> > >
> > >
> > > _______________________________________________
> > > pgbr-geral mailing list
> > > [email protected]
> > > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> > >
> > >
> >
>
___________________________________________________________________________________
Para fazer uma ligação DDD pra perto ou pra longe, faz um 21. A Embratel tem
tarifas muito baratas esperando por você. Aproveite!
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral