Inconveniente con sqlexec

Hola, estoy llenando una tabla de MSsql con informacion que tengo en una tabla de VFP. Para esto me conecté a travez del odbc y con sqlexec estoy insertando en la tabla. Cuando uso menos de 10 campos en la insercion no tengo problema, el problema es cuando uso mas de 10 campos en la insercion. Que puedo hacer.anexo codigo
STORE SQLCONNECT('BARVALS', 'super') TO gnConnHandle
IF gnConnHandle <= 0
= MESSAGEBOX('No se puede conectar', 16, 'Error de conexión SQL')
ELSE
= MESSAGEBOX('Conexión realizada', 48, 'Mensaje de conexión SQL')
use c:\proy_ofimatica\pt_final.dbf
scan for codigo='1047I'
zxano=2007
zxclasifica1='0'
zxclasifica2='0'
zxcodagrupa='0'
zxcodgrupo=pt_final.codgrupo
zxcodigo=pt_final.codigo
zxcodlinea=pt_final.codlinea
zxcodrete='0'
zxcodsblin=pt_final.codsblin
zxcodsumin='0'
zxcodtariva='TAR1'
zxcodubica='0'
zxconversion='0'
zxdescrip2=pt_final.descrip2
zxdescripcio=pt_final.descripcio
zxdiasrep=0
zxesproducto=1
zxhabilitado=1
zxunidadmed=unidadmed
zxiva=pt_final.iva
zxunidadmed=pt_final.unidadmed
zxundconvers='UND'
zxundempaque='UND'
zxtipoinv='PT'
zxtipempaque='0'
zxdescuento1=0
zxdscuento2=0
sqlexec(gnConnHandle,"insert into dbo.mtmercia(ano,clasifica1,clasifica2,codagrupa,codgrupo,codigo,codlinea,codrete,codsblin,codsumin,codtariva,codubica,conversion,descrip2,descripcio,diasrep,esproducto,habilitado,iva,unidadmed,undconvers,undempaque,tipoinv,tipempaque,descuento1,descuento2);
values(?zxano,?zxclasifica1,?zxclasifica2,?zxcodagrupa,?zxcodgrupo,?zxcodigo,?zxcodlinea,?zxcodrete,?zxcodsblin,?zxcodsumin,?zxcodtariva,?zxcodubica,?zxconversion,?zxdescrip2,?zxdescripcio,?zxdiasrep,?zxesproducto,?zxhabilitado,?zxiva,?zxunidadmed,?zxundconvers,?zxundempaque,?zxtipoinv,?zxtipempaque,?zxdescuento1,?zxdescuento2)")
endscan
*brows
Sqldisconnect(gnConnHandle)
Use
Endif
Respuesta
1
Lo que sucede es que estas utilizando una cadena superior a los 255 caracteres en una misma linea y por eso te da error, te sugiero que armes tu query (insert) de actualización por segmentos por ejemplo así.
cadena="insert into dbo.mtmercia(campo1...campon) "
cadena=cadena+"values(......)"
Luego lo corres así.
Sqlexec(gnConnHandle, cadena)
Ya veras que si te funciona.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas