FoxPro/Visual FoxPro - Ignorar registros borrados o modificados

 
Vista:

Ignorar registros borrados o modificados

Publicado por Joan Merce (8 intervenciones) el 04/01/2021 13:00:24
Buenos días. Lo primero de todo muchas gracias y enhorabuena por este foro, me ha ayudado a resolver infinitas dudas y he aprendido mucho de forma autodidacta.

He buscado por toda la web y esta vez no encontré nada. Estoy seguro de que es una tontería, pero me está fastidiando todas las apps que estoy creando.

A ver, resulta que si yo borro un registro de una tabla, y luego entro nuevamente en mi app para mostrar los registros, aún persiste el registro que he borrado, aunque reinicie el ordenador.

Por ejemplo, si borro una orden de producción y le digo:

LOCATE FOR NNUMORDEN = INT(VAL(ALLTRIM(thisform.text1.text)))

Y en text1 pongo una orden borrada, me aparece.

Si abro la tabla DBF (por ejemplo con excel) y busco esa orden no está, lo cuál implica que se ha borrado correctamente, pero el LOCATE FOR sigue encontrándola, ¿es porque se guarda en la caché o algo así? Sea como sea necesito que esto no suceda, que busque lo que realmente hay ahora mismo, porque lo que se ha borrado no me vale para nada.

Otra cosa, si en lugar de borrar modifico cualquier registro me aparece el registro modificado y el registro que había antes de la modificación, debe ser por lo mismo. Ya que al abrir la tabla DBF en excel no se duplica si no que queda con el cambio que he hecho satisfactoriamente.

Agradezco e antemano vuestra ayuda, feliz año.
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
Val: 18
Ha disminuido 1 puesto en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Ignorar registros borrados o modificados

Publicado por alexcoinc (40 intervenciones) el 04/01/2021 14:47:46
MIre el uso de SET TALK OFF en su rutina inicial

Recuerde:

VFP tiene dos tipos de borrados LOGICOS Y FISICOS

Logicos: Marcados para borrar
Fisicos: Borrados definitivamente previo el uso de PACK en uso exclusivo de la tabla

El set talk lo que hace es impedir que se muestren los registros marcados para borrar es decir aquellos que se borran con el comando DELETED

Ensaye y mire los resultados.

PD. En excel al exportarlo no se tienen en cuenta los registros marcados logicamente con deleted por ello "piensas" que están borrados cuando fisicamente no lo estan.
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

Ignorar registros borrados o modificados

Publicado por Joan Mercé (8 intervenciones) el 04/01/2021 20:43:47
Muchas gracias por la respuesta. Efectivamente, si abro la tabla con el searcher de visual foxpro los registros borrados constan como borrados pero persisten. Claro que debí suponer que el Facturaplus usa shared y por eso el borrado es lógico. El Excel ni se entera, los omite sin más. Claro que Excel no es el mejor programa para abrir tablas visto lo visto.

Probé con la condicional If deleted () pero estoy seguro que lo que usted me propone es infinitamente mejor y más simple.

Saludos y gracias nuevamente.
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

Ignorar registros borrados o modificados

Publicado por Joan Merce (8 intervenciones) el 04/01/2021 23:25:12
Finalmente he dado con la solución. Efectivamente, los registros estaban borrados con borrado lógico. Marcados como borrados pero no borrados en realidad. Para que mi programa los ignore no me funcionó el SET TALK OFF.

Lo que me ha funcionado es SET DELETED ON. Esto sí que hace que los registros borrados no los tenga en cuenta. Muchas gracias por todo
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