domingo, 29 de julho de 2007

Atachando Arquivos como Binários

Exemplo

Por diversas vezes precisei montar templates de documentos (.doc, .xls, .html ou arquivo de imagem) para exportar dados, porém, sempre precisava salvar o documento em um local padrão e em algumas vezes havia o problema do usuário apagar, alterar nome, dentre outros problemas.

Então resolvi, anexar os documentos em um campo OLE e anexa-los no bando de dados.

Este procedimento é aconselhavel quando vamos atachar apenas templates, ou seja, poucos documentos. Seria inviável anexar fotos de produtos, por exemplo, para um cadastro de estoque.

Segue a função:

**** Importando o arquivo para banco de dados
----------------------------------------------------------
Public Sub ImportFile(FileName As String, Dest As field)
'Parâmetros: FileName = Nome, extensão e caminho completo do Arquivo
' Dest = Campo Tipo Ole que será armarezado o arquivo (obtenha através de uma RecordSet.

On Error GoTo ImportFile_Err

Dim buf

Open FileName For Binary As #1
buf = Input(LOF(1), 1)
Close #1

Dest.Value = Null
Dest.AppendChunk buf
Exit Sub


ImportFile_Err:
MsgBox Err.Description , vbExclamation + vbOKOnly, "Application Error"
Resume Next

End Sub
----------------------------------------------------------
**** Exportando para caminho específico

Public Sub DumpFile(OutFileName As String, FileData)

On Error GoTo DumpFile_Err

Open OutFileName For Output As #1
Print #1, FileData
Close #1
Exit Sub

DumpFile_Err:
MsgBox Err.Description, vbExclamation + vbOKOnly, "Application Error"
Resume Next
End Sub

----------------------------------------------------------
Criei um exemplo para vocês:





Nenhum comentário: