Gravação de Imagem em BD

07/02/2006

0

Há meses tento colocar opção para se cadastrar imagens de clientes no meu sistema.
Após várias análises cheguei à conclusão que a melhor opção é gravar no banco de dados apenas o path onde o arquivo da imagem está, principalmente em virtude da performance.
Pergunto: como eu poderia fazer isso? Minha maior dúvida está em relação à questão da rede.
Por exemplo:
No cadastro do cliente 1, no campo ´Foto´, gravo C:\MeuPrograma\Imagens\Cli01.jpg. No cadastro de cliente coloco um componente image e quando o registro é acessado, capto a imagem e mostro no image. Até aqui tudo certo. Mas quando esse registro for acessado por uma estação de rede, o arquivo não vai mais estar em C:\... e sim em \\Servidor\C:\... Mesma coisa acontece se a imagem for inserida através da estação. Aí o path gravado ficaria \\Servidor\C:\MeuPrograma\Imagens\Cli01.jpg. Aí o problema ocorreria quando o acesso ao registro fosse no servidor.

Alguém pode me ajudar?

Delphi 7 Firebird 1.5

Obrigado.


Armindo

Armindo

Responder

Posts

07/02/2006

Martins

Pq vc não usa um OpenPictureDialog para pegar a imagem e o caminho dela?

Opd = OpenPictureDialog.

Opd.Execute;
...
Tabela.FieldByName(´C_Foto´).AsString := Opd.FileName;
...

Image1.Picture.LoadFromFile(Tabela.FieldByName(´C_Foto´).AsString;
...



Responder

07/02/2006

Armindo

Pq vc não usa um OpenPictureDialog para pegar a imagem e o caminho dela? Opd = OpenPictureDialog.
Opd.Execute;
...
Tabela.FieldByName(´C_Foto´).AsString := Opd.FileName;
...

Image1.Picture.LoadFromFile(Tabela.FieldByName(´C_Foto´).AsString;
...


Obrigado pela resposa, mas acho que você não entendeu minha dúvida.
Seguinte:
Para gravar o path tá beleza. Meu problema é qdo vou mostrar a imagem no Timage.
Vamos a um exemplo prático:
o Valor gravado em Tabela.FieldByName(´C_Foto´).AsString é C:\MeuPrograma\Imagens\Image01.jpg. Para mostrar a imagem, executo a seguinte rotina no evento on DataChange do DataSource:
Image1.Picture.LoadFromFile(Tabela.FieldByName(´C_Foto´).AsString;
O usuário estando no servidor, vai funcionar beleza, mas se o usuário estiver utilizando o prg numa estação, o path C:\MeuPrograma\Imagens\ não vai existir, pois essa pasta é do servidor, entendeu?

Obrigado.


Responder

07/02/2006

Martins

Entendido

C:\MeuPrograma\Imagens\Image01.jpg.
passaria a ser
\\Servidor\C:\MeuPrograma\Imagens\Image01.jpg.


As imagens são gravadas apartir do servidor, das estações, não existe um local onde essas imagens sejam armazenadas por padrão?


Responder

07/02/2006

Aroldo Zanela

Colega,

Acredito que você tenha escolhido a pior forma de lidar com ´fotos´, pois o armazenamento no banco é a melhor forma de se garantir a integridade.
Além disto, existem componentes especializados para o manuseio de imagens como o EDBImage que nos foi apresentado pela colega Lucania Salvatore e pode ser baixado gratuitamente do [url=http://cc.borland.com/Item.aspx?id=22742]link[/url].
Entretanto, no seu caso, acho que a forma de resolver mais rapidamente e criar um arquivo INI para apontar o local onde estão armazenadas.[/url]


Responder

07/02/2006

Armindo

[quote:c5d19b34f2=´Aroldo Zanela´]Colega,

Acredito que você tenha escolhido a pior forma de lidar com ´fotos´, pois o armazenamento no banco é a melhor forma de se garantir a integridade.
Além disto, existem componentes especializados para o manuseio de imagens como o EDBImage que nos foi apresentado pela colega Lucania Salvatore e pode ser baixado gratuitamente do [url=http://cc.borland.com/Item.aspx?id=22742]link[/url].
Entretanto, no seu caso, acho que a forma de resolver mais rapidamente e criar um arquivo INI para apontar o local onde estão armazenadas.[/url][/quote:c5d19b34f2]

Testei uma rotina para armazenar no BD, mas fica muito lento.


Responder

08/02/2006

Renato.pavan

Tente gravar no banco so o nome do arquivo Cli01.jpg, ai vc cria um arquivo ini CaminhoImagens, e nesse parametro vc coloca o path completo da imagem, depois no delphi vc carrega esse path para uma variavel na inicializaçao do seu sistema e trabalha com esta varialvel + o nome do arquivo gravado no bd.

Talvez isso possa resolver seu problema.

Renato.


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar