Ver Mensaje Individual
  #2 (permalink)  
Antiguo 29/07/2008, 14:59
marceperez322
 
Fecha de Ingreso: julio-2008
Mensajes: 4
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Recuperar imágen desde la bbdd

No se si es lo que consultas, pero proba

Public Sub LeerBase(campoBinary As Field, unPicture As PictureBox)
Dim lngCompensación As Long
Dim lngTamañoTotal As Long

DataFile = FreeFile 'Fichero temporal para guardar la imagen
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
unPicture.Picture = LoadPicture("pictemp") 'Se carga la imagen en el control

On Local Error Resume Next
If Len(Dir$("pictemp")) Then ‘el fichero se borrarlo
Kill "pictemp"
End If
Err = 0
End Sub

Public Sub GuardarBase(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 As Integer
SavePicture unPicture.Picture, "pictemp"

DataFile = FreeFile
Open "pictemp" For Binary Access Read As DataFile
Fl = LOF(DataFile
If Fl = 0 Then Close DataFile: Exit Sub

Chunks = Fl \ conChunkSize
Fragment = Fl Mod conChunkSize
ReDim Chunk(Fragment)

Get DataFile, , Chunk()
campoBinary.AppendChunk Chunk()
ReDim Chunk(conChunkSize)
For i = 1 To Chunks
Get DataFile, , Chunk()
campoBinary.AppendChunk Chunk()
Next i
Close DataFile

On Local Error Resume Next
If Len(Dir$("pictemp")) Then
Kill "pictemp"
End If
Err = 0
End Sub
'*********************
Private Sub Guardar_Click()
Data1.Recordset.Edit
Frame1.Visible = False
Picture1.Picture = Image1.Picture
GuardarBase Data1.Recordset!Imagen, Picture1
Data1.Recordset.Update
End Sub
‘********************
Private Sub Form_Load()
LeerBase Data1.Recordset!Imagen, Picture1
End Sub

La base de datos debe de tener un campo “imagen” con el tipo de dato “Objeto OLE”, en mi ej

Yo tengo enlazado el Picture con un FileListBox, donde al selecciono la imagen se carga en el Picture y con el CommandButtom se guarda en la BDato

saludos!!