Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/06/2009, 04:19
Avatar de KeiDash
KeiDash
 
Fecha de Ingreso: septiembre-2005
Mensajes: 114
Antigüedad: 19 años, 7 meses
Puntos: 0
Pregunta Pasar Imágenes a SQL desde Vb

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