Buenos dias a todos.
Actualmente tengo que desarrollar un procedimiento que inserte en un SQL2005, sobre un campo image un Array de Bytes (que es la imagen que se obtiene de un servidor).
Obtengo el Array y creo el fichero físico de la imagen en disco local, porque intente de un principio volcarlo directamente el array en el campo de la BD con un simple Update sobre la tabla. El problema es que eso no me funcionaba, así que desisti y cree un fichero físico (como .bmp) el cual en windows puedo verlo correctamente.
Al final buscando ejemplos en la red, encontre un ejemplo que usa un ADODB.Stream y el resultado ha sido asi:
Código:
'SE CREA LA IMAGEN COMO FICHERO FISICO.
If UBound(lBytArray) > 0 Then
sFile = App.Path & "\pic.bmp"
iFile = FreeFile()
Open sFile For Binary As #iFile
Put #iFile, , lBytArray()
Close #iFile
End If
Set lStream = New ADODB.Stream
lStream.Type = adTypeBinary
lStream.Open
If Len(sFile) <> 0 Then 'Comprobamos si el fichero existe
lStream.LoadFromFile sFile 'Asignamos al Stream el fichero imagen.
'USANDO MÉTODOS PROPIOS DE INSERCCION EN BD
gDb.Execute "UPDATE 'TABLA' SET CampoImagen=" & lStream.Read
End If
El caso es que el campo, se inserta un valor como nulo, y si consultas en ejecución el Stream, sale una cantidad de Signos y caracteres que supongo que será la codificación interna del archivo imagen.
¿Alguien me hecha una mano con este tema? ¿Que puedo estar haciendo mal o como podria hacerlo correctamente?
Saludos y gracias