FoxPro/Visual FoxPro - Problemas con UPDATE

   
Vista:

Problemas con UPDATE

Publicado por Pablo (Argentina) (433 intervenciones) el 14/01/2010 23:50:29
Hola Amigos del foro, les escribo nuevamente porque me surgieron algunos cambios en mi sistema y me encontre con este problema con la sentencia UPDATE.
El tema es asi, tengo un GRID al cual relleno con datos que provienen de 2 tablas, una es Altashabi y la otra controlorden y el grid lo lleno mediante una sentencia SQL, que hasta ahi me funciona todo bien. El grid en una de sus columnas tiene un campo logico que se llama rendida. Entonces que es lo que hago, cuando me rinden tarjetas en mi caso, las voy "tildando" las que me rindieron y despues en un boton de comando aplico la sentencia del UPDATE, que paso a describirles como es

SCAN FOR rendida = .T.
UPDATE rendicionvalores SET rendida = .T. WHERE rendicionvalores1.solicitud = altashabi.solicitud
UPDATE rendicionvalores SET rendida = .T. WHERE rendicionvalores1.solicitud = controlorden.solicitud
UPDATE altashabi SET rendida = .T. WHERE rendicionvalores1.solicitud = altashabi.solicitud
ENDSCAN
DELETE FROM rendicionvalores1 WHERE rendida = .T.
thisform.grid1.Refresh()
thisform.refrescagrilla1

el refrescagrilla1, contiene la secuencia del SQL para rellenar el grid que anda bien.

El sistema venia funcionando bien mientras tenia un solo UPDATE, el primero pero ahora que le agregue los otros 2 no me funciona sobre los 2 ultimos, el primero sigue bien, los campos en todas la tablas tienen el mismo nombre, extension y tipo de campo, y la tabla rendicionvalores esta relacionada en el entorno de datos con las otras 2 como les dije arriba por medio del campo solicitud para que se encuentren.

Bueno espero no haberlos aburrido, se que es largo pero espero haberme explicado bien cual es el problema.

Si alguien me puede ayudar a que funciones los 3 UPDATE bien, se los agradezoco mucho

Saludos

Pablo - Argentina
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
Imágen de perfil de Mauricio

Problemas con UPDATE

Publicado por Mauricio (1368 intervenciones) el 15/01/2010 02:29:09
Pablo, cuando haces el SCAN FOR rendida = .T. , ya rendida es .T., luego en el update lo intentas hacer .T. de nuevo. Porque?
*
Pablo, intentalo con esto:
SCAN FOR rendida && de esta manera pues es logico
IF rendicionvalores1.solicitud = altashabi.solicitud
UPDATE rendicionvalores SET rendida = .T.
UPDATE altashabi SET rendida = .T.
ENDIF
*
IF rendicionvalores1.solicitud = controlorden.solicitud
UPDATE rendicionvalores SET rendida = .T.
ENDIF
*
IF rendicionvalores1.solicitud = controlorden.solicitud
UPDATE rendicionvalores SET rendida = .T.
ENDIF
ENDSCAN
DELETE FROM rendicionvalores1 WHERE rendida = .T.
thisform.grid1.Refresh()
thisform.refrescagrilla1
Avisa cualquier cosa
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

RE:Problemas con UPDATE

Publicado por Pablo (Argentina) (433 intervenciones) el 15/01/2010 13:45:12
Hola Mauricio, Muchas Gracias por tu ayuda, lo voy a probar y te aviso a ver como anduvo, sino llega a funcionar, te publico la sentencia SQL que tengo dentro del refrescagrilla asi ves bien todo y vemos donde puede ser el problema, que me resulta raro pero bueno.

Muchas Gracias

Pablo - Argentina
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

RE:Problemas con UPDATE (Mauricio)

Publicado por Pablo (Argentina) (433 intervenciones) el 15/01/2010 13:55:02
Hola Mauricio, Bueno probe lo que me pasastes y no me funciona, la verdad es que mire y todo los campos en las tablas estan bien, y sus extensiones y nombres en las 3 tambien. Por las dudas a ver si te sirve en el Entorno de Datos tengo la tabla

Altashabi.solicitud RELACIONADA con rendicionvalores.solicitud
controlrden.solicitud RELACIONADA rendicionvalores.solicitud

Por ahi hay algo mal ahi. El codigo que tengo dentro del REFRSCAGRILLA es el siguiente

thisform.grid1.recordsource = ""

SELECT Rendicionvalores.solicitud, Rendicionvalores.fecha,;
Rendicionvalores.formapago, Rendicionvalores.factura,;
Rendicionvalores.importe, Rendicionvalores.tarjeta,;
Rendicionvalores.cupon, Rendicionvalores.cuotas,;
rendicionvalores.importecombinado, Rendicionvalores.rendida;
FROM altauni!rendicionvalores;
WHERE Rendicionvalores.rendida = .F.;
ORDER BY Rendicionvalores.solicitud;
INTO CURSOR rendicionvalores1 READWRITE
GO top
thisform.grid1.recordsource = "rendicionvalores1"

fijate con esto y el resto que te pase en la anterior nota a ver si vos encontras donde puede estar el error por el cual cuando le hago un Update para las .T. no las graba.

Desde ya Muchas Gracias

Pablo - Argentina
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

RE:Problemas con UPDATE (Mauricio)

Publicado por es_binario (757 intervenciones) el 16/01/2010 05:55:21
Que tal Amigo, estoy tratando de entender lo que deseas hacer y me parece algo complicado.

Bueno en pantalla estas mostrando en una grilla la rendicion de valores, dentro de un cursor con readwrite para que puedan modificarlo. siendo asi entonces no necesitas actualizar el cursor rendicionvalores1, por que este se actualiza conforme el usuario hace click tal vez en un checbox dentro de la grilla.

*//------------------------- tu tenias
SCAN FOR rendida = .T.
UPDATE rendicionvalores SET rendida = .T. WHERE rendicionvalores1.solicitud = altashabi.solicitud
UPDATE rendicionvalores SET rendida = .T. WHERE rendicionvalores1.solicitud = controlorden.solicitud
UPDATE altashabi SET rendida = .T. WHERE rendicionvalores1.solicitud = altashabi.solicitud
ENDSCAN
DELETE FROM rendicionvalores1 WHERE rendida = .T.
thisform.grid1.Refresh()
thisform.refrescagrilla1
*// --------------------------------------------

aqui actualizas 2 veces la tabla rendicionvalores una para cuando se encuentre en altashabi y otra para controlorden

*// en esta parte es la que no comprendo por que: crei que nada mas actualizarias las cuentas que el usurio seleccionara como rendidas.

*//--- algo asi
Update rendicionvalores SET rendida = .T. WHERE rendicionvalores.solicitud in ;
Select(rendicionvalores1.solicitud from rendicionvalores1 where ,
rendicionvalores.rendida = .T.)

con esto bastaria para actualizar a partir del cursor las tablas que han sido marcadas como rendidas, si no es asi, aclarame un poco mas cual es la clae principal.

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

RE:Problemas con UPDATE (Mauricio)

Publicado por Pablo (Argentina) (433 intervenciones) el 16/01/2010 13:56:15
Hola Amigo de Mex, como va, mira lo hice de la forma que lo vistes porque necesito que el .T. me aparezca grabado en las 3 tablas que tengo en el entorno de datos, el campo RENDIDA esta en las 3 tablas por eso es que hago 3 Update.
Si me preguntas porque esta en las 3 la verdad es un Quilombo o problema, tengo que ver como hago en otros forms para relacionar tablas por el campo solicitud para que con solo que grabe en una sola tabla ya esta. Pero por el momento estaba viendo si podia grabar en las 3 tablas el campo RENDIA, ¿me explico?, eso es lo que quiero hacer ahora.

Mirastes la intruccions SQL como esta hecho, por eso es lo de las 3 tablas, capaz que ahi hay algo mal y yo no me doy cuenta.

En Resumen seria que yo en la Grilla pueda "Tildar" las ventas que me rindieron en la columna RENDIA y que despues recorra toda la grilla y que las que estan en Rendida = .T. me las grabe en las 3 tablas que tengo en los campo Rendia como .T. mediante un Update o de alguna otra forma. Espero em hayas entendido. Acepto cualquier cambio a mi programa o sugerencia

Muchas Gracias y si estas por el chat por ahi no hablamos mejor, espero me entiendas lo que quiero hacer.

Saludos desde Argentina

Pablo
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

RE:Problemas con UPDATE (Es_Binario)

Publicado por Pablo (Argentina) (433 intervenciones) el 16/01/2010 13:57:55
La Nota Anterior a esta, esta el comentario para vos Es_Binario. Muchas Gracias
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

RE:Problemas con UPDATE (Mauricio)

Publicado por es_binario (757 intervenciones) el 16/01/2010 15:50:01
Yo te recomendaria que le pusieras un check a una de las columns de tu grilla, o cual es la mecanica que usas para grabar si una venta a sido o no rendida?

para poderte ayudar mejor.
casi no uso el messanger es_binario me conecte a las 9 de Mexico, pero me puedes contactar a vhugo1861mex@hotmail.com, ese es el que uso mucho 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

RE:Problemas con UPDATE (Es_Binario)

Publicado por Pablo (Argentina) (433 intervenciones) el 16/01/2010 16:24:43
Bueno, OK, gracias, fijate que arriba puse una nota sobre un select dado que voy a cambiar algunas cosas en los forms para ver si puedo resolver este problema del Update dejando solo una tablas asi no se complica.

Muchas Gracias

Pablo - Argentina
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