Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Guardar imagenes en Access

Estas en el tema de Guardar imagenes en Access en el foro de Visual Basic clásico en Foros del Web. Hola amigos, disculpen las molestias ocacionadas pero alguien podria ayudarme sobre como le puedo hacer para guardar una imagen en access con vb.net, solo me ...
  #1 (permalink)  
Antiguo 09/01/2009, 13:15
 
Fecha de Ingreso: enero-2008
Mensajes: 181
Antigüedad: 16 años, 3 meses
Puntos: 1
De acuerdo Guardar imagenes en Access

Hola amigos, disculpen las molestias ocacionadas pero alguien podria ayudarme sobre como le puedo hacer para guardar una imagen en access con vb.net, solo me gustaria si alguen puede decirme como guardar es decir, la estructura que debe llevar con la instruccion insert y update. espero puedan ayudarme, les doy las gracias de antemano y les envio un cordial saludo
  #2 (permalink)  
Antiguo 13/01/2009, 02:47
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 2 meses
Puntos: 37
Respuesta: Guardar imagenes en Access

Cita:
Iniciado por rishart Ver Mensaje
Hola amigos, disculpen las molestias ocacionadas pero alguien podria ayudarme sobre como le puedo hacer para guardar una imagen en access con vb.net, solo me gustaria si alguen puede decirme como guardar es decir, la estructura que debe llevar con la instruccion insert y update. espero puedan ayudarme, les doy las gracias de antemano y les envio un cordial saludo
Hola, mira si te vale este procedimiento:

Código:
Private Sub GuardarImagen(ByVal nReg As Integer)
        OpenFileDialog1.Filter = "Archivos de imágenes (*.bmp; *.jpg; *.gif; *.tiff; *.png) | *.bmp;*.jpg;*.gif;*.tiff;*.png"
        If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
            Try
                Dim fs As New FileStream(OpenFileDialog1.FileName, FileMode.Open, FileAccess.Read)
                Dim br As BinaryReader = New BinaryReader(fs)
                Dim b() As Byte = New Byte(fs.Length) {}
                ReDim b(fs.Length)
                br.Read(b, 0, CInt(fs.Length))
                fs.Close()

                Dim cn As New ADODB.Connection
                cn.Open("Provider=Microsoft.jet.oledb.4.0;data source = " & _
                        My.Application.Info.DirectoryPath & "\Pictures.mdb")

                Dim rs As New ADODB.Recordset
                Dim sql As String = "Select * From Tabla1"
                If nReg > 0 Then sql = sql & " Where id = " & nReg
                rs.Open(sql, cn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)
                If nReg = 0 Then rs.AddNew()
                rs.Fields("Foto").AppendChunk(b)
                rs.Update()

                cn.Close()
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End If
    End Sub
Le pasamos como parámetro 'nReg' el valor del campo Id si es para modificar la imagen y 0 (cero) si es para añadir un nuevo registro.

Qué hace:
- Abre un cuadro de diálogo para seleccionar la imagen (si tienes el archivo imagen ya predefinido, lo puedes pasar como parámetro a la función y eliminar el cuadro de diálogo)
- Lee los bytes del archivo y los guarda en un array b()
- Abre la BD con el método ADO y con el método AppendChunk lo graba en el campo OLE.

Espacio de nombres: System.IO

Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:54.