Envío de Varios Campos de Vfp a SqlServer

Estimado amigo el problema que tengo es que cuanto intento pasar registros desde VFP6 a SQL2000 SERVER me sale este Error: EL COMANDO CONTIENE UNA FRASE O PALABRA CLAVE NO RECONOCIDA.
Lo que estoy notando que solo me permite pasar 24 campos y cuando le aumento un campo más allí me sale este error, pero tengo la necesitar de pasar 32 campos desde Vfp6 a Sql2000 server. Este el código que utilizo
Select Tmp_Cxc
Go Top
Do While !Eof()
   Wcadena2b="Insert Into Pgs_Post(Gen_Pgs, Cod_Alu, Nom_Usu, Doc_Pag, Ndc_Pag,;
  Fec_Reg, For_Pag, Bco_Pag,  Chq_Pag, Dni_Alu, Dat_Alu, Fec_Vct, Fec_Dep, Nro_Dep,;
  Cpt_Pag, Imp_Pag, Cuo_Pag, Sem_Alu, Prg_Alu, Cic_Alu, Mon_Pag, Tot_Pag, Mor_Pag,;
  Int_Pag) Values('"+Allt(Tmp_Cxc.Gen_Pgs)+"','"+Allt(Tmp_Cxc.Cod_Alu)+"',;
'"+Allt(Tmp_Cxc.Nom_Usu)+"','"+Allt(Tmp_Cxc.Doc_Pag)+"','"+Allt(Tmp_Cxc.Ndc_Pag)+"',;
'"+Allt(Tmp_Cxc.Fec_Reg)+"','"+Allt(Tmp_Cxc.For_Pag)+"','"+Allt(Tmp_Cxc.Bco_Pag)+"',;
"+Allt(Tmp_Cxc.Chq_Pag)+"','"+Allt(Tmp_Cxc.Dni_Alu)+"','"+Allt(Tmp_Cxc.Dat_Alu)+"',;
'"+Allt(Tmp_Cxc.Fec_Vct)+"','"+Allt(Tmp_Cxc.Fec_Dep)+"','"+Allt(Tmp_Cxc.Nro_Dep)+"',;
'"+Allt(Tmp_Cxc.Cpt_Pag)+"','"+Str(Tmp_Cxc.Imp_Pag,9,2)+"','"+Allt(Tmp_Cxc.Cuo_Pag)+"',;
'"+Allt(Tmp_Cxc.Sem_Alu)+"','"+Allt(Tmp_Cxc.Prg_Alu)+"','"+Allt(Tmp_Cxc.Cic_Alu)+"',;   '"+Str(Tmp_Cxc.Mon_Pag,9,2)+"','"+Str(Tmp_Cxc.Tot_Pag,9,2)+"',;
'"+Str(Tmp_Cxc.Mor_Pag,9,2)+"','"+Str(Tmp_Cxc.Int_Pag,9,2)+"')"
   If Sqlexec(CnxCxc,Wcadena2b)>0
   Else
     a=Aerror(Mat)
     Messagebox(Mat(2), 55,'Error al Grabar')
   EndIf
   Sele Tmp_Cxc
   Skip
EndDo

3 respuestas

Respuesta
1
Fox tiene 255 campos, revisa el tipo de campo eso es seguro que te esta dando problemas en el campo 24
Respuesta
1
Te recomiendo que utilices vista remotas y hagas el ejemplo con la vista remota, y el tratamiento es como si fuera una tabla nativa foxpro. Ej:
CREATE SQL VIEW alumnos_view CONNECTION nombreconexionodbc AS SELECT * FROM alumnos
=DBSetProp("alumnos_view","View","SendUpdates",.T.) &&hacemos la vista actualiable
* campo indice por medio del cual se va actualizar la tabla remota
=DBSetProp("alumnos_view"+".id_alumno","Field","UpdateName","id_alumno")
=DBSetProp("alumnos_view"+".id_alumno","Field","KeyField",.T.)
Respuesta
1
Creo que esta pregunta ya la respondí pero creo que no te llego la respuesta.
En realidad Visual Foxpro Tiene muchas formas de enviar información con COMMIT
Pero ya que utilizas esta forma tienes que valerte también del comando
Update ejemplo.:
"Update set campo=variable where codigo=xcodigo"
Esto cuantos campos te falte enviar
No te olvides de usar la clausula WHERE ya que remplazara lo mismo en toda la tabla destino.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas