Traslado de clientes

Hola farturo, ya me sacaste del primer rollo, ahora tengo otra pregunta: He venido pasando la información de las tablas de visual fox a SQL pero he tenido problema con una tabla en especial que es la de clientes. Es un poco grande así que hice cadenas como me enseñastes pero no hace la inserción. Me di cuenta que el comando "sqlexec" devuelve -1 pero no sé por que. Anexo la codificación para ver si ves algo que yo no... Gracias de antemano.
close data
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')
var1="S"
var2="N"
var3="0"
var4=0
var5="[email protected]"
var6="www.noconozco.com"
var7="NN"
use g:\datos\barval\clientes in 1 shared
use g:\datos\barval\facturas in 2 shared
select distinct nit from facturas ;
where year(facturas.fecha)=2007;
into cursor temp
sele temp
select * from clientes ;
inner join temp on clientes.nit=temp.nit;
into cursor temp2 order by clientes.nit
sele temp2
brows
scan for nit_a <> '4000'
cadena1="insert into dbo.mtprocli(autoret,banco,califcalid,califtiemp,canal,cdciiu,ciiu,ciudad,ciudadprv,codalterno,"
cadena2="coddesfin,coddesfinp,codigocta,codigoctap,codprecio,codpreciop,codrete,codretep,codruta,comentario,"
cadena3="contacto,contribuye,cupocr,cupocrp,desccomer,desccomerp,descfinan,descfinanp,direccion,escliente,esprovee,"
cadena4="estrato,exterior,fechaing,fecnac,habilitado,identifica,intcar,nit,nitsucur,nombre,numcta,periodofac,"
cadena5="personanj,plazo,plazop,poraiu,poraiup,pretica,preticap,pretiva,pretivap,regsimp,reportdc,resprete,retica,"
cadena6="reticap,sucursal,tel1,tel2,tipocar,tipocli,tipocta,tipocxp,tipoiden,tipoper,tipoprv,vendedor,zona)"
cadena7=" values(0,?var3,0,0,?temp2.canal,?var3,?var3,?temp2.ciudad,?var3,?temp2.codalterno,"
cadena8="?var3,?var3,?temp2.codigocta,?var3,?temp2.listapre,?var3,?temp2.codrete,?var3,?temp2.codruta,?temp2.comentario,"
cadena9="?temp2.contacto,0,?temp2.cupocr,?var4,?var4,?var4,?var4,?var4,'temp2.direccion,?var1,?var2,"
cadena10="4,0,?temp2.fechaing,'temp2.fechaing,?temp2.habilitado,?var2,?var1,?temp2.nit_a,?temp2.nit_a,?temp2.nombre,?var3,?var4,"
cadena11="2,?temp2.plazo,?var4,?var4,?var4,?temp2.pretica,?var4,?temp2.pretiva,?var4,?temp2.regsimp,0,0,?var3,"
cadena12="?var3,0,?temp2.tel1,?temp2.tel2,?temp2.tipocar,?temp2.tipocli,0,?var3,?var3,?var7,?temp2.vendedor,?temp2.zona)"
cadena=cadena1+cadena2+cadena3+cadena4+cadena5+cadena6+cadena7+cadena8+cadena9+cadena10+cadena11+cadena12
resultado=sqlexec(gnConnHandle,cadena)
wait wind'Resultado = '+ str(resultado) timeout 1
wait wind'Desea seguir' to opc
if opc='n' .or. Opc='N'
exit
endif
endscan
*brows
sqldisconnect(gnConnHandle)
*close databases
Endif

1 respuesta

Respuesta
1
Veo que hay un apostrofe "'" en algunos casos en la cadena9 y la 10 dice: "'temp2.dirección" hay como dos o tres así, creo que eso es lo que te esta dando error, también para evitar tantas variables de cadena puedes utilizar la misma así:
cadena="select * "
cadena=cadena+"tabla where "
cadena=cadena+"codigo=1"
Pero es opcional como te sientas mejor.
Corrige esos errores en el query e intenta.
Hola farturo, ya corregí lo que me dijiste pero sigo sin insertar. En la tabla de sql hay uno campos BIT, los cuales los lleno con 0 para idenficiar falso. ¿Esta esto Bien? ¿O debo colocarle .f. como se llenan en visual?
La única forma de saber el error es corriendo el resultado de la variable cadena dentro del editor de consultas de SQL, allí te dará el error, posiblemente tengas algún nombre de campo mal escrito, o algún tipo de dato coincida o estés violando alguna llave primaria o secundaria, te recomiendo que corras el query directamente en el editor de consultas de SQL el te dará el error.
Para poder ver tendría que tener la estructura de tu tabla.
Hola farturo, corrí el query desde SQL y me di cuenta que hay un campo que no acepta null y que no lo había tenido en cuenta. Muchas gracias. Eres un bacán !

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas