Quisiera saber de que manera puedo eliminar físicamente algunos registros de una tabla en la que ya he marcado los registros como eliminados con el delete all pero necesito borrarlo físicamente solo que en ocasiones me da error de que debo abrir la tabla en forma exclusiva. Utilice set exclusive on select tabla delete all pack set exclusive off Pero siempre me vuelve a dar el error
1 respuesta
Respuesta de ravenn
1
1
ravenn, Me alegra poder estar de regreso. A la orden para sus consultas....
Pues mira.. una forma que podría ser útil va así: Puedes configurar un botón (por ejemplo) "Eliminar" para marcar los registros que vas a desechar "físicamente" de la tabla. Primero márcalos con DELETE (haciendo click en el botón) y cuando salgas del form (en el evento RELEASE de tu form) usas PACK y la tabla en modo exclusivo! Así se produce la eliminación y la tabla se vuelve a cerrar, sin problemas! Así: 1. En el evento click de tu botón Eliminar, coloca este código: **--Eliminar registros DELETE--** #DEFINE MSGBOX_YES 6 #DEFINE C_MSGBOX1 36 #DEFINE C_DELETE_LOC "Desea eliminar este registro?" IF EMPTY(ALIAS()) RETURN ENDIF IF MESSAGEBOX(C_DELETE_LOC,C_MSGBOX1) = MSGBOX_YES DELETE THISFORM.Refresh Endif IF !EOF() SKIP 1 Endif IF EOF() AND !BOF() SKIP -1 Endif THISFORM. Refresh **--Fin--** 2. En el evento RELEASE de tu form, coloca esto: **-- USE nombredetutabla EXCLUSIVE PACK Proba! :) Espero te sea de utilidad. En mi humilde opinión... no es aconsejable eliminar físicamente los registros de tu tabla, dado que podrían haber situaciones en las que necesites invocarlos (con RECALL) para usarlos nuevamente! Basta con aplicar un DELETE sobre el registro para marcarlo para su eliminación y con SET DELETED ON (en el INIT() del form) controlas no ver los registros ya marcados! Claro.. es solo mi humilde opinión! Si tienes alguna duda o no te da bien, avisame para ayudarte! Si no, recuerda finalizar la pregunta! Saludos vecino! :) ! Un abrazo! Desde Managua, Nicaragua! A tus ordenes, Ravenn :D :D :D