Chicos,

Al final quedo asi...

Local loRecordSet,lcArchBin,llHuboError
lcArchBin=Thisform.pfmModulo.pInformes.pfmPreferencias.pCabecera.imgRutaLogo.PictureVal
IF EMPTY(lcArchBin) AND
!EMPTY(Thisform.pfmModulo.pInformes.pfmPreferencias.pCabecera.imgRutaLogo.Picture)
lcArchBin=CREATEBINARY(FILETOSTR(Thisform.pfmModulo.pInformes.pfmPreferencias.pCabecera.imgRutaLogo.Picture))
ENDIF
*lcArchBin=IIF(VacioNulo(lcArchBin),null,lcArchBin)*
If _Screen.UsoDsn
lcSql="Update Ajustes Set Logo=?lcArchBin"
 lnResp=SQLEXEC(Thisform.ConexionActual,lcSql)
llHuboError=!CapturaErrorODBC(lnResp,lcSql)
Else
 lcSql="SELECT logo FROM Ajustes"
loRecordSet=Createobject("ADODB.RECORDSET")
loRecordSet.Open(lcSql, Thisform.Conexionactual , 01, 03)
 If loRecordSet.recordcount>0
loRecordSet.Fields(0).Value = lcArchBin
Try
 loRecordSet.Update()
Catch To loError
llHuboError=.T.
 Do RegistraLog With
Datetime(),_Screen.UsrName,_Screen.AppName,3,loError.Procedure,loError.Lineno,lcSql,;
ICASE(' OLE '$loError.Message,'OLE',' ODBC
'$loError.Message,'ODBC','VFP'),loError.ErrorNo,loError.Message
 Endtry
Endif
ENDIF
If llHuboError
Messagebox("Se produjo un error interno durante la grabación.",16,"Avise a
Sistemas")
Endif
Return !llHuboError

Les dejo resaltado en negrita lo importante...

Esta variable en una de las vueltas me quedaba en false y por eso se daba
el error...

Saludos,

Pancho
Córdoba

Responder a