Problema con el Update entre Vfp Sql2000 Server

Estimado Experto tengo problemas al querer desde vfp6 actualizar el stock actual en mi SQL 2000 SERVER.
Te envio la programacion q empleo para q me corrijas por favor
************** ALIMENTA Y CALCULA EL STOCK ****************
Xcpt=""
Xstk=""
Xing=" "
Xcod=" "
Xptd=" "
Xsk1=0
Xsk2=0
Xsk3=0
= SQLEXEC(CnxStk,"SELECT * FROM Ing_Alm","Ing_Stk") ***** EXTRAE DEL SQL A TABLA TEMPORAL ING_STK
Select Ing_Stk
Go Top
Do While !Eof()
Xing=Allt(Ing_Stk.Gen_Ing)
Xcod=Allt(Ing_Stk.Cod_Prd)
Xcpt=Allt(Ing_Stk.Cpt_Prd)
Xptd=Allt(Ing_Stk.Par_Prd)
Xsk1=Allt(Ing_Stk.Can_Prd)
Select Stk_Stk
Set Exac On
Locate For Allt(Stk_Stk.Cod_Prd)=Xcod And;
Allt(Stk_Stk.Par_Prd)=Xptd
If Found()
Set Filter To Allt(Stk_Stk.Cod_Prd)=Xcod And;
Allt(Stk_Stk.Par_Prd)=Xptd
Xsk2=Allt(Stk_Stk.Can_Stk)
Xsk3=Val(Xsk2)+Val(Xsk1) && Calcula Stock
Repla Stk_Stk.Gen_Stk With Xstk
Repla Stk_Stk.Cod_Prd With Xcod
Repla Stk_Stk.Fec_Stk With Ing_Stk.Fec_Ing
Repla Stk_Stk.Par_Prd With Xptd
Repla Stk_Stk.Cpt_Prd With Xcpt
Repla Stk_Stk.Umd_Prd With Ing_Stk.Umd_Prd
Repla Stk_Stk.Can_Stk With Str(Xsk3,9,2)
Repla Stk_Stk.Pun_Prd With Allt(Ing_Stk.Pun_Prd)
Repla Stk_Stk.Tot_Prd With Allt(Ing_Stk.Tot_Ing)
Repla Stk_Stk.Mar_Prd With Allt(Ing_Stk.Mar_Prd)
Repla Stk_Stk.Ser_Prd With Allt(Ing_Stk.Ser_Prd)
Xexporta=0
Else
Append Blank
Repla Stk_Stk.Gen_Stk With Xing
Repla Stk_Stk.Cod_Prd With Xcod
Repla Stk_Stk.Fec_Stk With Allt(Ing_Stk.Fec_Ing)
Repla Stk_Stk.Par_Prd With Xptd
Repla Stk_Stk.Cpt_Prd With Xcpt
Repla Stk_Stk.Can_Stk With Xsk1
Repla Stk_Stk.Pun_Prd With Allt(Ing_Stk.Pun_Prd)
Repla Stk_Stk.Tot_Prd With Allt(Ing_Stk.Tot_Ing)
Repla Stk_Stk.Mar_Prd With Allt(Ing_Stk.Mar_Prd)
Repla Stk_Stk.Ser_Prd With Allt(Ing_Stk.Ser_Prd)
Xexporta=1
EndIf
Select Ing_Stk
Skip
EndDo
************ AQUI SUPUESTAMENTE DEBERIA ACTUALIZAR EN EL SERVIDOR
Select Stk_Stk
Set Filter to
If Xexporta=0
If 0 < SQLEXEC( CnxStk, ;
"UPDATE STK_ALM SET"+ ;
"STK_ALM.Can_Stk = 'Stk_Stk.Can_Stk'"+;
"WHERE Allt(Stk_Alm.Cod_Prd) = 'Allt(Stk_Stk.Cod_Prd)' And Allt(Stk_Alm.Par_Prd) = 'Allt(Stk_Stk.Par_Prd)' " )
EndIf
Else
Thisform.Exp_Stk
EndIf
*****************
Espero tu ayuda por favor
Atentamente,
Jechu

1 respuesta

Respuesta
1
Varias cosas y esta medio confuso tu programa
1.- defines Xsk1=0 y luego Xsk1=Allt(Ing_Stk.Can_Prd) usando ALLT() entiendo que solo opera con caracteres
2.- ¿Sobre lo mismo porque cada vez usas ALLT()? Revisa bien eso
3.- En la instruccion UPDATE vuelves a usar ALLT() no se si SQLSERVER acepta esta instruccion (no estoy seguro)
4.- en la misma instruccion veo "WHERE Allt(Stk_Alm.Cod_Prd) = 'Allt(Stk_Stk.Cod_Prd)' And Allt(Stk_Alm.Par_Prd) = 'Allt(Stk_Stk.Par_Prd)' " fijate que le pides que reemplace UN REGISTRO con la condicion que sea igual a un codigo y (AND) una candidad (muy confuso) que ademas estas con ALLT()
No se si entendi bien, pero revisa eso.
Suerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas