FoxPro/Visual FoxPro - COMO ACTUALIZO MODIFICACIONES DE UN CURSOR A TABLA

   
Vista:

COMO ACTUALIZO MODIFICACIONES DE UN CURSOR A TABLA

Publicado por Fernando (42 intervenciones) el 06/11/2008 18:01:59
Saludos a todos los Foristas!

Estoy tratando de hacer lo siguiente;

En un formulario el usuario consulta un comprobante de pago, la informacion esta almacenada en una tabla donde se graba los detalles del comprobante, al hacer clic en un boton el usuario, este desencadena una consulta "select FECHA, PAGO, VALOR, CTACTE, CHEQUE, VENCE, NCP, from PAGOS into cursor TEMPAGO", luego hago que se ejecute un formulario con un grid, y se muestra la consulta, hasta aqui no tengo problema.

El problema que se me presenta, es que desconosco si habra una manera de que el usuario realice modificaciones en el comprobante de pago (ej: modifique el numero de un cheque que se daño por otro) y que la modificacion que se realizo en el cursor, se actualice automaticamente en la tabla de origen de datos (osea la tabla PAGOS)

Esperando una gentil respuesta, me despido!

FERNANDO
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

RE:COMO ACTUALIZO MODIFICACIONES DE UN CURSOR A TA

Publicado por enrique (1041 intervenciones) el 06/11/2008 20:12:23
Si haces el Select ..... into cursor nombre_cursor , en VFP6 no puedes modificar ; se que en el VFP9 si pones Select ...... into cursor nombre_cursor ReadWrite, te permite modificar

Con respecto a la actualizacion automatica fijate el TableUpdate()
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:COMO ACTUALIZO MODIFICACIONES DE UN CURSOR A TA

Publicado por Fernando (42 intervenciones) el 07/11/2008 15:51:34
Saludos Enrique, y gracias por contestar.

Te cuento que siempre he programado con temporales, y es la primera vez que estoy intentando usar los cursores que se generan en las consulta SELECT.

Aun sigo con el problema, ya estube intentando algo con el READWRITE y el TABLEUPDATE(), he revisado pero aun no logro dominarlo. a continuacion detallo el codigo, que estoy empleado y si alguien me ayuda a corregir que estoy haciendo mal.

**** EVENTO CLIC DEL BOTON "CONSULTAR"
SET MULTILOCKS ON
=CURSORSETPROP("Buffering",5,'CTAPAGAR') && Esta linea no estoy muy seguro de que este bien, aqui necesito ayuda.
SELECT FECHA, PAGO, VALOR, CTACTE, CHEQUE, VENCE, NCP;
FROM DETAPAGOS WHERE DETAPAGOS.NCP=WNCP;
INTO CURSOR TEMPAGOS READWRITE
CRUTA=SYS(5)+SYS(2003) && OBTENGO LA RUTA DE MI PROYECTO
DO FORM &CRUTAFORMSCONSPAGO2.SCX &&EJECUTO EL FORMULARIO QUE CONTIENE EL GRID DONDE SE MUESTRA LA CONSULTA

**** EVENTO CLIC DEL BOTON "GUARDAR" DEL FORMULARIO CON GRID DE CONSULTA

SELECT CTAPAGAR
=TABLEUPDATE(1,.T.,'CTAPAGAR')
THISFORM.Release

**********************************************************************************
* El grid me permite modificar, no tengo problema con eso, el valor se corrige en
* la consulta "TEMPAGOS", pero al momento que se hace clic en el boton
* Guardar, supuestamen guarda, no me da ningun error, pero al revisar la tabla
* "DETAPAGOS" no hay ninguna modificacion, el valor sigue como estaba
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:COMO ACTUALIZO MODIFICACIONES DE UN CURSOR A TA

Publicado por Mario (199 intervenciones) el 07/11/2008 18:25:48
El inconveniente que tenés es el siguiente:
Con el SELECT (SQL) estás creando un cursor temporal que es donde efectuás los cambios, es decir, estás modificando el cursor NO LA TABLA.
Para que la tabla se te actualice, deberías hacer el grid basado en dicha tabla y luego utilizar el Tableupdate para grabar.
Exitos
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:COMO ACTUALIZO MODIFICACIONES DE UN CURSOR A TA

Publicado por kong (681 intervenciones) el 07/11/2008 22:10:52
siguiendo la linea anterior.
y si sigues usando el cursor, entonces seria de pasarle un SCAN al cursor, dentro de este comparar con la tabla, si son iguales, y si es negativo, reeplazar.
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:COMO ACTUALIZO MODIFICACIONES DE UN CURSOR A TA

Publicado por TITO (311 intervenciones) el 09/11/2008 01:36:51
La verdad es que no hay una relacion directa entre lo que es un CURSOR y la tabla de datos, y no tiene nada que ver con el UPDATE.
Si construyes un cursor en la modalidad READWRITE y efectuas modificaciones en este, no hay forma en que se actualice la tabla en forma automatica o por medio de un comando, ESO NO EXISTE.
Lo que si existe, son las vistas parametrizables las cuales envian automaticamente las actualizaciones a la tabla (si es que la has definido así).
Por otra parte tu complicacion nace a partir de que las modificaciones las efectuas directamente en una GRID, la verdad es que yo utilizo siempre las grid para mostrar los datos en modalidad solo lectura, pues es complicado el control de las actualizaciones (el usuario perfectamente puede retroceder un registro, cambiar una valor ya digitado, etc, y para conservar el stock por el ejemplo en el caso de que varios usuario utilicen el sistema al mismo tiempo, el asunto se complica todavia mas en ambiente multiusuario) sencillamente a partir de un doble click yo muestro un formulario con los datos del actual registro y alli es donde hay un control total de validacion, actualizacion o arrepentimiento del usuario (ABANDONA), pero bueno son solo sugerencias no es una regla fija a aplicar.
Saludos,
TITO
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