FoxPro/Visual FoxPro - NO ACTUALIZA DATOS SQLEXEX

 
Vista:
sin imagen de perfil

NO ACTUALIZA DATOS SQLEXEX

Publicado por felipe (2 intervenciones) el 28/07/2015 01:33:59
Buenas Tardes

Quiero hacer una pequeña actualizacion a una tabla de sql server ( 2008 ) usando el vfp 9.0, es una programacion basica, este comando update no actualiza desde vfp, pero si me conecto a la base de datos directamente si lo hace, me gustaria saber en donde este el error o a que se debe esto .

esta en si, es lo que hace mi programa...es muy basico lo q' necesito...actualizar tres campos de una tabla, con datos de una segunda tabla


TEXT TO SQLQRY ADDITIVE TEXTMERGE PRETEXT 7
UPDATE admMovimientos SET CIMPORTEEXTRA1 = B.CPRECIO3, CIMPORTEEXTRA2 = B.CPRECIO4, CIMPORTEEXTRA3 = B.CPRECIO5
FROM admMovimientos AS A
JOIN admProductos AS B ON A.CIDPRODUCTO = B.CIDPRODUCTO WHERE A.CIDDOCUMENTODE = 4 AND A.CFECHA = <<QFECHA>>
ENDTEXT

WAIT SQLQRY WINDOW

Conex = SQLCONNECT('AGROG','administrator','MatorgA2014',.t.)
sqlsetprop(Conex,'DispWarnings',.T.)

IF ( SQLEXEC(CONEX, SQLQRY) < 0 )
IF ( MESSAGEBOX(" NO SE PUDO EJECUTAR EL UPDATE ...CANCELAR PROCESO " ,1 ) = 2)
CLEAR
CLOSE ALL
ENDIF
ELSE
SQLEXEC(Conex , " select cidproducto, cimporteextra1, cimporteextra2, cimporteextra3 from admMovimientos where cfecha = ?qfecha and ciddocumentode = 4 ")
BROWSE
ENDIF
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

NO ACTUALIZA DATOS SQLEXEX

Publicado por Diego Gustavo (31 intervenciones) el 28/07/2015 22:55:51
Estimado Felipe, podes hacerlo de la siguiente manera:
UPDATE A SET A.CIMPORTEEXTRA1 = B.CPRECIO3, A.CIMPORTEEXTRA2 = B.CPRECIO4, A.CIMPORTEEXTRA3 = B.CPRECIO5
FROM admMovimientos AS A
JOIN admProductos AS B ON A.CIDPRODUCTO = B.CIDPRODUCTO WHERE A.CIDDOCUMENTODE = 4 AND A.CFECHA = <<QFECHA>>

Y si no, como no se como se concatena la variable QFECHA, lo haria de la siguiente manera:

local cYear, cMonth, cDay, cFecha

cYear = transform(year(QFECHA))
cMonth = transform(month(QFECHA))
cDay = transform(day(QFECHA))

cFecha = alltrim(cYear) + "-" + iif(val(cMonth)<10, "0"+alltrim(cMonth), alltrim(cMonth)) + iif(val(cDay)<10, "0"+alltrim(cDay), alltrim(cDay))

SQLQRY="UPDATE A SET A.CIMPORTEEXTRA1 = B.CPRECIO3, A.CIMPORTEEXTRA2 = B.CPRECIO4, A.CIMPORTEEXTRA3 = B.CPRECIO5 ";
+"FROM admMovimientos AS A ";
+"JOIN admProductos AS B ON A.CIDPRODUCTO = B.CIDPRODUCTO WHERE A.CIDDOCUMENTODE = 4 AND A.CFECHA = '" + alltrim(cFecha) + "'"


Saludos, y cualquier duda, estoy a disposicion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

NO ACTUALIZA DATOS SQLEXEX

Publicado por felipe (2 intervenciones) el 29/07/2015 19:07:34
Gracias por tu apoyo ... si funciona trabajando directamente con SQL Server .... pero no actualiza desde VFP ...

Ya lo solucione de esta forma...

UPDATE A SET A.CIMPORTEEXTRA1 = B.CPRECIO3, A.CIMPORTEEXTRA2 = B.CPRECIO4, A.CIMPORTEEXTRA3 = B.CPRECIO5
FROM admMovimientos AS A
JOIN admProductos AS B ON A.CIDPRODUCTO = B.CIDPRODUCTO WHERE A.CIDDOCUMENTODE = 4 AND A.CFECHA = ?QFECHA

o sea sustitui <<QFECHA>> por ?QFECHA ...

el formato <<QFECHA >> Lo copie de algun lugar de internet ...asi fue como funciono en este ejemplo.


Saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

NO ACTUALIZA DATOS SQLEXEX

Publicado por Diego Gustavo (31 intervenciones) el 30/07/2015 14:56:49
Buenisimo, me alegro que lo hayas podido solucionar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar