Guardar imagenes a una Tabla.

Curita
23 de Noviembre del 2003
Hola Amigos internautas. tengo una consulta. quiero realizar un programa en visual basic, que me permita guardar fotografias.
encontre un texto donde me indicaba solamente guardar la ruta de la imagen mas no la imagen propiamente dicha.
por favor, no se si alguien conoce un metodo o un fragmento de programacion para que me guarde la imagen. en el campo foto de mi tabla, esta definido como objeto ole.
Muchas Gracias.

Juaran
23 de Noviembre del 2003
wenas Curita,

para poder insertar una foto en el campo de una tabla necesitas la funcion:

Public Sub FileToBlob(fld As ADODB.Field, FileName As String, Optional ChunkSize As Long = 8192)

Dim fnum As Integer, bytesLeft As Long, bytes As Long
Dim tmp() As Byte

If (fld.Attributes And adFldLong) = 0 Then Err.Raise 1001, , "El campo no soporta el método GetChunk."

If Dir$(FileName) = " " Then Err.Raise 53, , "Archivo no encontrado"
fnum = FreeFile
Open FileName For Binary As fnum
bytesLeft = LOF(fnum)
Do While bytesLeft
bytes = bytesLeft
If bytes > ChunkSize Then bytes = ChunkSize
ReDim tmp(1 To bytes) As Byte
Get #1, , tmp
fld.AppendChunk tmp
bytesLeft = bytesLeft - bytes
Loop
Close #fnum

End Sub

mientras que para recuperar esta foto, necesitas:

Public Sub BlobToFile(fld As ADODB.Field, FileName As String, Optional ChunkSize As Long = 8192)

Dim fnum As Integer, bytesLeft As Long, bytes As Long
Dim tmp() As Byte

If (fld.Attributes And adFldLong) = 0 Then Err.Raise 1001, , "El campo no soporta el método GetChunk."

If Dir$(FileName) <> "" Then Kill FileName
fnum = FreeFile
Open FileName For Binary As fnum
bytesLeft = fld.ActualSize
Do While bytesLeft
bytes = bytesLeft
If bytes > ChunkSize Then bytes = ChunkSize
tmp = fld.GetChunk(bytes)
Put #fnum, , tmp
bytesLeft = bytesLeft - bytes
Loop
Close #fnum

End Sub