Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Pasar Imágenes a SQL desde Vb

Estas en el tema de Pasar Imágenes a SQL desde Vb en el foro de Visual Basic clásico en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 17/06/2009, 04:19
Avatar de KeiDash  
Fecha de Ingreso: septiembre-2005
Mensajes: 114
Antigüedad: 18 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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:00.