FoxPro/Visual FoxPro - Porque me da error al eliminar?

 
Vista:

Porque me da error al eliminar?

Publicado por Jhoxan (20 intervenciones) el 19/08/2007 23:03:26
Hola Amigos tengoi un problemita con el siguiente codgo:

buscar=messagebox("Esta seguro que desea eliminar este registro?",4+48,"Eliminar Registro")
if buscar=6
delete
pack
go top
thisform.refresh
else
endif

Cuando le doy a mi boton eliminar me dice:

Debe abrir el Archivo en modo exclusivo.

luego le quito "pack" del codigo y no me borra ningun registro.

por favor ayudenme.
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:Porque me da error al eliminar?

Publicado por Plinio (7841 intervenciones) el 19/08/2007 23:28:31
1- No es recomendable usar dentro de tu aplicacion el PACK
- Puede ser peligroso, si te da un error la tabla activa puedes eliminar records de otra
- El archivo debe de estar abierto en modo exclusivo, lo cual evita que tu aplicacion trabaje en un ambiente compartido

2- Si pones SET DELETE ON en tu programa principal no se veran los registros borrados logicamentes (DELETE borra logicamente no ficisamente)

3- Ten una aplicacion aparte (yo le llamo utilitario) que haga un pack cada cierto tiempo.
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:Porque me da error al eliminar?

Publicado por ricardo (153 intervenciones) el 20/08/2007 11:50:29
Para poder utilizar el pack sobre cualquier tabla esta dbe estar abierta en exclusividad, pruebalo en la ventan de comandos borra un registro de una tabla abierta en compartido y luego haz el pack veras lo que pasa
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
sin imagen de perfil

RE:Porque me da error al eliminar?

Publicado por neo (1604 intervenciones) el 20/08/2007 15:12:24
Yo lo haría asi:

En un Botón, en la propiedad Click()

Close databases
Set exlusive on

Open database Mi_Base_de_Datos.dbc
Select Mi_tabla.dbf

buscar=messagebox("Esta seguro que desea eliminar este registro?",4+48,"Eliminar Registro")
if buscar=6
delete
pack
reindex
close databases
Set Exclusive Off
Wait Window "Esta pantalla se Cerrará para Reindizar los Datos" Timeout .8
Thisform.release
else
Wait Window "Proceso Cancelado" Nowait
endif

Thisform.refresh
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