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:
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.'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
¿Alguien me hecha una mano con este tema? ¿Que puedo estar haciendo mal o como podria hacerlo correctamente?
Saludos y gracias