Todoexpertos.com
http://www.todoexpertos.com
La respuesta está en Internet
Información de la pregunta
Título: Error de eliminacion
Experto: victoramf
Valoración: 4
Fecha: 15/05/2008


Error de eliminacion
[size= small; font-family: Times New Roman]Hola experto, talvez parezca simple lo que quiero consultar pero sucede que estoy haciendo un mantenimiento y tengo un boton elminar que tiene el siguiente código: IF BOF() OR EOF() messagebox("No hay registros para eliminar ...",0,"Advertencia") ELSE if messagebox("¿Esta seguro de eliminar el registro?",36,"Confirmación")=6 reg=recno() use d:\libros\datos\denom_ingresos EXCLUSIVE GO reg DELETE PACK messagebox("El registro fue eliminado ...",62,"Aviso") thisform.cmdUltimo.Click ELSE thisform.cmdUltimo.Click ENDIF endif thisform.refresh En el load del formulario tengo este codigo: USE d:\libros\datos\denom_ingresos SHARED AGAIN IN 0 ORDER id_den Y en el init del form tengo este codigo Set exclusive off set dele on thisform.mostrardatos Cada vez que cargo el form y elimino un registro me aelimina normal pero cuando vuelvo a cargar el formulario ya a intentar borrar otro registro me dice que el archivo esta en uso.

Error de eliminacion
Después de eliminar el registro la tabla permanece abierta en modo exclusivo, puedes volver a abrirla en modo compartido. Yo sugiero que los registros solo se marquen para ser eliminados y el borrado físico se lleve a cabo al final de la aplicación,

Error de eliminacion
A que te refieres con abrirla en modo compartido por que el eveneto load del form lo abro en modo compartido. USE d:\libros\datos\denom_ingresos SHARED AGAIN IN 0 ORDER id_den

Error de eliminacion
Si, en el evento Load, pero no después de eliminar el registro. Cuando eliminas el registro, para poder utilizar la instrucción Pack abres la tabla en modo exclusivo.

Error de eliminacion
Entonces como sería la posible solución, he colocado close tables antes de abrir la tabla en el evento load: CLOSE TABLES USE d:\libros\datos\denom_ingresos SHARED AGAIN IN 0 ORDER id_den

Error de eliminacion
- En el evento Destroy del formulario agrega la instrucción Close Databases All - Modifica el código de eliminación a: . .[i] If messagebox("¿Esta seguro de eliminar el registro?",36,"Confirmación")=6 reg=recno() use d:\libros\datos\denom_ingresos EXCLUSIVE GO reg DELETE PACK [b]use d:\libros\datos\denom_ingresos SHARED  && Abrir el archivo en forma compartida[/b] messagebox("El registro fue eliminado ...",62,"Aviso") thisform.cmdUltimo.Click[/i] . . ---- En el evento Load abres las tablas [u]nuevamente[/u], esa es la finalidad de la clausula [i]AGAIN[/i]

Pregunta finalizada. Valoración: 4
Muchas gracias por tu tiempo


Volver al mensaje
http://www.todoexpertos.com/categorias/tecnologia-e-internet/programacion/visual-fox-pro/respuestas/1844595/error-de-eliminacion