Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/06/2002, 12:13
Avatar de mauriciolangea
mauriciolangea
 
Fecha de Ingreso: enero-2002
Mensajes: 59
Antigüedad: 22 años, 4 meses
Puntos: 0
Re: insertar imagen en ado MUY URGENTE

Meter fotos en una base de datos sin DataControl

Extraído del web del Guille (http://guille.costasol.net), no dejes de visitarlo.

Tenemos un recordset llamado MiRecordSet con un campo tipo OLE llamado MiCampo y un picture box llamado Picture1.

Para leer la imagen y mostrarla en el picture :

LeerBinary MiRecordSet!MiCampo, Picture1

Para guardar la imagen del picture en el campo :

GuardarBinary MiRecordSet!MiCampo, Picture1

Las funciones son :


Option Explicit
Dim DataFile As Integer
Dim Chunk() As Byte
Const conChunkSize As Integer = 16384

Public Sub LeerBinary(campoBinary As Field, unPicture As PictureBox)
    'Leer la imagen del campo de la base y asignarlo al Picture
    Dim lngCompensación As Long
    Dim lngTamañoTotal As Long
    'Se usa un fichero temporal para guardar la imagen
    DataFile = FreeFile
    Open "pictemp" For Binary Access Write As DataFile
    lngTamañoTotal = campoBinary.FieldSize
    Do While lngCompensación < lngTamañoTotal
        Chunk() = campoBinary.GetChunk(lngCompensación, conChunkSize)
        Put DataFile, , Chunk()
        lngCompensación = lngCompensación + conChunkSize
    Loop
    Close DataFile
    'Ahora se carga esa imagen en el control
    unPicture.Picture = LoadPicture("pictemp")
    'Ya no necesitamos el fichero, así que borrarlo
    On Local Error Resume Next
    If Len(Dir$("pictemp")) Then
        Kill "pictemp"
    End If
    Err = 0
End Sub

Public Sub GuardarBinary(campoBinary As Field, unPicture As PictureBox)
    'Guardar el contenido del Picture en el campo de la base
    Dim i As Integer
    Dim Fragment As Integer, Fl As Long, Chunks A