Nuevamente, aquí en busca de su ayuda.
Como ya lo he comentado en otro post, tenía funcionando si problemas una aplicación que cargaba una imagen desde archivo lo cargaba a un objeto Stream y mediante este lo asignaba a un campo blob en una tabla mysql. Mas o menos en resumen lo hacía así:
- Code: Select all Expand view
//::oStream := TOleAuto():New("adodb.stream")
::oStream := win_OleCreateObject( "ADODB.Stream" )
::oStream:Type := 1 //adTypeBinary
::oStream:Open()
//cargo la foto desde un archivo al objeto
::oStream:LoadFromFile(cfile)
//Creo el nuevo recordset
oRsFoto:Addnew()
oRsFoto:fields('cod_veh'):Value := ::oRsV:Fields('cod_veh'):Value
oRsFoto:Fields('fecha'):Value := fecha
oRsFoto:Fields('nota'):Value := nota
try
//Coloco la foto en el campo
oRsfoto:fields('foto'):Value = ::oStream:Read(-1)
catch oError
MsgInfo( "SEND01 NO : " + ";" + CRLF+ ;
"Message: " + oError:Description )
//MsgStop("Problemas al colocar la fotografía en su respectivo campo")
//ShowError(oError,oCon)
end
//actualizamos el recordset
oRsFoto:Update()
::oStream:Close()
Todo esto me funcionaba sin contratiempos antes de actualizarme, pero ahora al momento de hacer
oRsfoto:fields('foto'):Value = ::oStream:Read(-1)
obtengo el error que me da en oError:Description : "Argument Error"
Esto me trae de cabeza desde hace tiempo, y no encuentro la solución.
Pienso que ::oStream:LoadFromFile(cfile) , no está cargando adecuadamente el fichero, por lo que al ser pasado en oRsfoto:fields('foto'):Value = ::oStream:Read(-1) no es un archivo válido. Pero no sé como comprobarlo, estoy perdido.
Intenté usar un ejemplo que hallé aqui en el foro:
oRsfoto:Fields("foto"):AppendChunk( VTArrayWrapper():New( 17, cBUFFER ) ) // cBUFFER contiene bytes leidos desde un fichero de imagen
Pero tuve problemas con la función VTArrayWrapper, que me parece que no es de harbour, así que probé:
oRsfoto:Fields("foto"):AppendChunk( cBUFFER )
y si graban bytes a la tabla pero no como una imagen
Ahora usando FWH 10.3 + Harbour 3.0 Rev: 16951 + BCC582 en Windows 8.1 pro 64 bits
Ayuda please!