FoxPro/Visual FoxPro - Vistas Update()

 
Vista:

Vistas Update()

Publicado por marco (79 intervenciones) el 13/09/2005 22:26:27
Hola, tengo un formulario que tiene dos vistas locales, actualizables, pero algunas veces me salva los cambios pero otras ocaciones no.

Las actualizo usando transacciones con este código

*************************
* Actualizar registros *
*************************
SET REPROCESS TO 5
BEGIN TRANSACTION
If tableupdate(.T.)
End transaction
Else
Rollback
do ERROR_ROUTINE
Endif tableupdate(.T.,.T.)
************************
SELECT VistaLocal
REQUERY("VistaLocal")

y con respecto a las vistas locales, en las opciones de hacerlas actualizables, tengo que son todos los campos actualizables. en las opciones UPDATE CRITERIA

Key and Modified fields - SQL UPDATE

El buffer lo tengo: =CURSORSETPROP("Buffering",3,"VistaLocal")
y el formulario: BufferMode = 2 Optimistic

Que más hago, no se alguien que me ayude para corregir el problema, la aplicación corre desde un server. Gracias por los consejos que me puedan dar.
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:Vistas Update()

Publicado por Robert Cortez (14 intervenciones) el 01/12/2005 22:07:17
Mira nose si sera tarde, yo tuve el mismo problema pero con vistas Remotas que es casi lo mismo. Realiza lo sgte:
1.En el Init de tu formulario colocas:
open database "...." &&abres tu BD
set multilocks on
ISuccess = CURSORSETPROP("Buffering",5,"viewresultado") &&5 Para que
&& actualize toda la tabla, es decir si estas modificando o ingresando a la vez.
if ISuccess = .F. then
=messagebox("Operacion NO realizad..!",0,"Status de Operacion")
endif
2.En el evento Click del Command1 para Adicionar:
Inser Into viewresultado(codigo) values ("")
thisform.Grid1.Columns(1).SetFocus()
&&tambien puedes hacerlo con Appendblank
3.En el evento Click del Command2 para Grabar:
select viewresultado
= TABLEUPDATE(1,.T.,"viewresultado") &&1 para que confirmen en la vista
&& todas las modificaciones realizadas en los registros.
if TABLEUPDATE() then
wait windows "SI Se grabaron datos"
else
wait windows "NO Se grabaron datos"
endif
&& lo que hiciste en el Update Criteria es necesario hacerlo.
4. Por ultimo en el Metodo Destroy del Form. y en un Command cancel colocas:
select viewresultado
TABLEREVERT(.T.) &&Para descartar los cambios en la vista.

Eso es todo espero te sirva.
Cualquiera del foro me puede preguntar atraves de mi correo.
bye.
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