La Web del Programador: Comunidad de Programadores
 
    Pregunta:  7864 - COMO PUEDO RECUPERAR IMAGENES DE UNA BASE DE DATOS?
Autor:  Jaime Covarrubias
Quiero saber como puedo recuperar las imagenes guardadas en una base de datos de access mas especificamente se encuentra en un campo de tipo OLE, quiero utilizar asp para poder recuperar y mostrar las imagenes en mis paginas web.
Por favor, mejor si me ayudan con algun ejemplito, gracias.

  Respuesta:  hugo veras
la forma de recuperar imagenes almacenados en campo ole en access se hace de la siguiente forma(yo estoy asumiendo que vas a escribir una pagina asp)

'solo estoy mostrando parte del codigo
'tienes que definir las variables usando Dim

'con esta instruccion le dices al browser el tipo de imagen
<%
Response.ContentType="image/bmp"

'ahora hacemos la conexion ado
Set objRecordset=Server.CreateObject("ADODB.Recordset")

'aqui escribes las instrucciones de sql que necesitas
'yo estoy usando un nombre generico para la tabla: tablename
'para el campo de la imagen estoy usando el nombre de logo

txtSQL=""
txtSQL="Select logo FROM TableName "

'abriendo las instrucciones de sql en la conexion de la
'base de datos. Esta conexion la puedes hacer con el
'wizard que trae visual interdev

objRecordset.Open strSQL,
Application"cnnPubsAccessOLE_ConnectionString")

numActualSize=objRecordset.Fields("logo").ActualSize
strOLEHeader=objRecordset.Fields("logo").GetChunk(78)
strImageHeader=objRecordset.Fields("logo").GetChunk(numActualSize - 78)

Response.BinaryWrite strImagesBytes

objRecordset.Close
Set objRecordset = Nothing
Response.End

'como puedes observar este codigo no esta completo pero
'te puede ayudar tus propositos, si la imagen estuviera en
'microsoft sql server, no lo puedes hacer de esta forma pues
'no funcionaria.

  Respuesta:  Wilson Duyvestein
Hasta donde yo entiendo en realidad la imagen no es grabada físicamente en una DB sino su dirección, te aconsejo que esa imagen se encuentre dentro de las carpetas de tu proyecto web. Lo que tendrías que hacer es algo así...

<img border=0 src="<%=Response.Write(objRecordset.Fields(0).Value)%>" height="70">

Donde "objRecordset.Fields(0).Value" contiene la dirección de tú imagen.

Espero que te sirva :-)