Cargar/Descargar Archivos Desde y Hacia una Columna ‘image’ SQL

 


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


 

5 thoughts on “Cargar/Descargar Archivos Desde y Hacia una Columna ‘image’ SQL”

  1. ‘almacenar array en una imagen binaria Sql

    Archivos.Insert(Nombre, _By)

    que es eso me alega con Archivos.Insert(Nombre, _By)me dice que no esta declarado

  2. Hola, sabes que yo tampoco entiendo mucho. me imagino que para insertar algo en la tabla de ser con la instruccion insert into ? o no?

    gracias.

  3. Siguiendo el codigo anterior en :
    ‘almacenar array en una imagen binaria Sql
    Archivos.Insert(Nombre, _By)

  4. Luego de estar el fin de semana dando vueltas por un montón de páginas en Internet, pude localizar esta información que publicaste y finalmenteerminar la parte del código que me faltaba para mostrar imágenes almacenadas en SQL.

    Muchas, muchas gracias!!!

  5. buenas tardes; debido a mi trabajo, necesito pasar de una maquina un archivo a mi laptop; esta maquina tiene un puerto serie (rs 232); es mucho mas facil copiar de maquina a maquina; solo configuro una para enviar, la otra para recibir y listo; pero las maquinas son muy sensibles y un ligero sacudimiento (como cuando no ves un bache); hace que las maquinas se autoprotejan y se les borre la memoria; por eso quiero tener el archivo en una memoria USB; pero primero necesito pasar el archivo, O.K. tengo mi la maquina en modo enviar y conectada al puerto serie de mi laptop;pero no pasa nada; ahora como le digo a ni laptop que se prepare a recibir un archivo por el puerto serie???

Leave a Reply

Your email address will not be published. Required fields are marked *


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>