Buenas tardes, ojo con la versión de sql 2008 (por el driver que usas SQL 
Server Native Client 10.0) se discontinuaron los tipos de datos de image y 
text, y se reemplazaron por nvarchar(max) y varchar(max) consulta en la web a 
ver si no viene por ahí el tema

Saludos

Martín Gamazo
Analista Programador
Gerencia de Sistemas y Desarrollo Tecnológico
La Rioja 301 (1214) - Buenos Aires
Teléfonos:  4956-9622  Int. 1461
Directo: 4956-9761
e-mail: [email protected]</mailnew/[email protected]>
Web:  www.oca.com.ar<javascript:void(0);>

De: [email protected] [mailto:[email protected]] En nombre de francisco prieto
Enviado el: jueves, 27 de marzo de 2014 05:49 p.m.
Para: GUFA List Member
Asunto: [GUFA] Actualizar campo Imagen es SQL Server

Debido a que debo trabajar en forma hibrida (ADODB y ODBC) el código que 
perfectamente esta trabajando en ADODB, lo tuve que adaptar para que trabaje 
ademas con ODBC...

Este es el código...

Local loRecordSet,lcArchBin,llHuboError
IF 
File(Thisform.pfmModulo.pInformes.pfmPreferencias.pCabecera.imgRutaLogo.Picture)
lcArchBin=Createbinary(Filetostr(Thisform.pfmModulo.pInformes.pfmPreferencias.pCabecera.imgRutaLogo.Picture))
ENDIF
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

Y este es el error que me captura

Error de conectividad: [Microsoft][SQL Server Native Client 10.0][SQL 
Server]Operand type clash: bit is incompatible with image

Para que quede claro que es lo que se ejecuta en modo ODBC les puse en negrita 
las lineas...

Espero sus comentarios.

Saludos,

Pancho
Córdoba

Responder a