Grupo,

Como hay muy poca información al respecto y acabo de resolver el
inconveniente les cuento como hice...

En mi tabla de SqlServer debo tener un campo de tipo image.

Para almacenar la imagen en el motor con AdoDB:

LOCAL loRecordSet,lnArchBin,llHuboError
lcSql="SELECT logo FROM Ajustes"
loRecordSet=Createobject("ADODB.RECORDSET")
loRecordSet.Open(lcSql, loConexionactual , 01, 03)
If loRecordSet.recordcount>0
lnArchBin=Createbinary(Filetostr(ThisForm.imgRutaLogo.Picture))
 loRecordSet.Fields(0).Value = lnArchBin
loRecordSet.Update()
ENDIF

Para recuperar la Imagen y visualizarla en pantalla:

LOCAL loRecordSet
lcSql="SELECT logo FROM Ajustes"
loRecordSet=Createobject("ADODB.RECORDSET")
loRecordSet.Open(lcSql, loConexionactual , 01, 03)
If loRecordSet.recordcount>0 AND !ISNULL(loRecordSet.Fields(0).Value)
ThisForm.imgRutaLogo.PictureVal=loRecordSet.Fields(0).Value
ELSE
    ThisForm.imgRutaLogo.PictureVal=""
ENDIF

Unos detalles a tener en cuenta...

* el subíndice de Fields comienza siempre en 0 y determina a que campo nos
estamos refiriendo, como en este caso uso un solo campo al ser el primer
campo es 0

* Noten que si detecto que el contenido de campo es nulo, no se lo asigno a
PictureVal porque daría error.

* Si bien la recomendación en sqlserver 2008 es utilizar FileStream, al
tener que hacer modificaciones en el motor y no ser compatible con 32bits
en maquinas de 64 bits, prefiero usar campo image que funciona en todos los
casos.

Les dejo sin embargo todo lo que encontre de FileStream para que hagan su
propia experiencia:

Introducción al almacenamiento mediante FILESTREAM
http://msdn.microsoft.com/es-es/library/bb933995(v=sql.105).aspx<http://www.google.com/url?q=http%3A%2F%2Fmsdn.microsoft.com%2Fes-es%2Flibrary%2Fbb933995(v%3Dsql.105).aspx&sa=D&sntz=1&usg=AFQjCNEBVhp5KuEewtlE0-7RsOMCHBfPog>
 Cómo habilitar FILESTREAM
http://msdn.microsoft.com/es-es/library/cc645923(v=sql.105).aspx
 Cómo crear una base de datos habilitada para FILESTREAM
http://msdn.microsoft.com/es-es/library/cc645585(v=sql.105).aspx
 Cómo crear una tabla para almacenar datos FILESTREAM
http://msdn.microsoft.com/es-es/library/cc645583(v=sql.105).aspx
 Administrar datos FILESTREAM usando Transact-SQL
http://msdn.microsoft.com/es-es/library/cc645962(v=sql.105).aspx

Saludos,

Pancho
Córdoba

Responder a