Friend Class Ejemplo
Private _ms As MemoryStream ‘Carga/descarga de archivos SQL
Private _Fs As FileStream ’Manejo archivos en memoria
Private _By() As Byte = Nothing ‘Array de intercambio
‘
‘Guardar el Documento
Private Sub Doc_Almacenar(ByVal Origen As String, ByVal Nombre As String)
Try
‘crear un nuevo fstrm con el archivo apuntado en la ruta
‘contenida en el origen
_Fs = New FileStream(Origen, FileMode.Open, FileAccess.Read)
‘redimensionarlo y adaptarlo a su longitud
ReDim _By(_Fs.Length)
‘convertir el fstrm en un array de bytes
_Fs.Read(_By, 0, _Fs.Length)
‘Archivos es el tableadapter
‘almacenar array en una imagen binaria Sql
Archivos.Insert(Nombre, _By)
_Fs.Close() ‘cerrar el fstrm
_Fs.Dispose() ‘Liberarlo
Catch ex As Exception
‘En caso de excepcion…
Me.lblExcepciones.Text = «DocAlmacenar: « + ex.Message
End Try
End Sub
‘
‘Cargar documento desde la col imagen de SQL
Private Sub Doc_Recuperar(ByVal Nombre As String)
Try
‘Recuperar imagen de SQL a un array intermedio
If Nombre.Length > 0 Then
‘el table adapter devuelve una imagen
‘resultante de la consulta ‘Recuperar(Col Nombre)’
Dim Buffer() As Byte = Archivos.Recuperar(Nombre).Rows(0).Item(«Imagen»)
‘Crear un nuevo archivo
_Fs = New FileStream(«Documento.tmp», FileMode.Create, FileAccess.Write)
‘escribirlo a partir del array intermedio
_Fs.Write(Buffer, 0, Buffer.Length)
_Fs.Close() ‘Cerrar el fstrm
_Fs.Dispose() ‘Liberarlo
End If
Catch ex As Exception
‘En caso de excepcion, reportar
Me.lblExcepciones.Text = «DocRecuperar: « + ex.Message
Try
My.Computer.FileSystem.DeleteFile(«Documento.tmp»)
Catch ex2 As Exception
Me.lblExcepciones.Text = «Eliminar: « + ex.Message
End Try
End Try
End Sub
End Class