Fórum Arquivos em DB SQL / Mostrar ícone de acordo c/ extensão #318967
11/04/2006
0
Estou com duas dúvidas, vamos ver se conseguem me ajudar:
Tenho uma tabela num banco de dados SQL Server, onde armazeno arquivos de clientes, de qualquer tipo(jpeg, pdf, doc, txt, xls, gif, etc...), e preciso listar estes arquivos num DBGrid, ou num DBListBox, ou em algum componente que permita isso...
A dúvida é a seguinte:
Tem como exibir o arquivo em algum componente do delphi, mas com o ícone do arquivo de acordo com a extensão?
Exemplo:
Eu coloco um arquivo .htm, aparece com aquele ícone do Internet Explorer, eu coloco um arquivo .xls, aparece o ícone de arquivos do Excel, etc...
A outra é:
Existe alguma forma de abrir um arquivo que esteja em uma tabela do SQL Server, editá-lo, e salvá-lo novamente dentro da tabela, sem a necessidade do usuário ter que extrair o arquivo do banco, para poder editá-lo, e então jogar no banco novamente?
Isso ajudaria um bocado, porque os usuário reclamam que o programa não fica usual assim, tendo que extrair, editar, localizar o cliente, e então substituir o arquivo antigo do banco, pelo que acabou de ser editado.
É isso pessoal, agradeço antecipadamente a atenção e a ajuda.
Abraços!
Fernando

Robotpost
Curtir tópico
+ 0Posts
12/04/2006
Paulocesar1301
Tenho algo bem semelhante aqui... o que fiz foi um ´.res´ e na minha tabela eu tenho 2 campos (um com o próprio arquivo e outro com sua extensão) e al ler o registro, ele testa a extensão e carrega do ´.res´ o tipo correspondente:
No ´.res´
1 2 3 4 | ICONEJPG ICON "C:\QualquerCaminho\jpeg.ico" ICONEGIF ICON "C:\QualquerCaminho\gif.ico" ICONEPPT ICON "C:\QualquerCaminho\ppt.ico" ... |
Gostei + 0
12/04/2006
Robotpost
Vc poderia me dar uma idéia de como trabalhar com arquivos .res?
O que vc faz?Armazena as imagens nele é isso?
Abraços e obrigado pela ajuda.
Fernando
Gostei + 0
12/04/2006
Paulocesar1301
1-Crie um arquivo texto e troque a extensão para ´.rc´;
» Coloque no ´.res´:
1 2 3 | ICONEJPG ICON "C:\QualquerCaminho\jpeg.ico" ICONEGIF ICON "C:\QualquerCaminho\gif.ico" ICONEPPT ICON "C:\QualquerCaminho\ppt.ico" |
» Tipos: ICON, BITMAP, RCDATA, etc...
Obs.: RCDATA serve para qualquer coisa !
2-Crie um ´.bat´ dentro da mesma pasta onde salvou o ´.rc´ com o seguinte código:
1 2 3 | echo off C:\Arquiv~1\Borland\Delphi6\Bin\brcc32.exe "C:\CaminhoDoRC\meures.rc" pause |
Obs.: O pause é só para ver se tuco correu bem ou se gerou algum erro
» Na mesma pasta será criado um arquivo ´.res´
3-Copie, caso já não esteja, o arquivo ´.res´ para a pasta onde está seu projeto;
4-Coloque uma indicação do ´.res´ em seu projeto:
1 2 3 4 5 | ... implementation {$R meures.res} {$R *.dfm} |
5-Em seu projeto, você pode extrair o arquivo ou carregar seu conteúdo:
» Extraindo:
1 2 3 4 5 6 7 8 9 10 11 12 | Var ResStream: TResourceStream; Try Try ResStream := TResourceStream.CreateFromID (HInstance, 1, RT_RCDATA); ResStream.SaveToFile(PastaDestino + ´arqbmp.bmp´); Finally ResStream.Free; End; Except ResStream.Free; End; |
» Depois é só ler o arquivo como outro qualquer;
» Lendo direto do ´.res´:
1 | Image1.Picture.Icon.Handle := LoadIcon(HInstance, ´ICONEJPG´); |
... acho que não esqueci de nada ...
Abraços e Bons Códigos :wink:
Gostei + 0
12/04/2006
Robotpost
Muito obrigado, vc abriu a minha mente c/ esta explicação.. rs
Vai ser de enorme utilidade, obrigado mesmo!
Fernando
Gostei + 0
12/04/2006
Paulocesar1301
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)