Para compactar un fichero, por ejemplo .DBF, que es usado en modo compartido, tienes que cerrarlo y reabrirlo en modo exclusivo. Haces la compactacion, lo cierras y reabres de nuevo en modo compartido con todos sus indices.
Puedes probar con lo siguiente:
1- Lo cierras.
2- Trata de abrirlo en exclusivo, comprobando si otro usuario lo tiene abierto con NetErr(). Por supuesto, si algun otro usuario lo tiene abierto, te devolver谩 .t., por lo que debes devolverlo a su estado anterior (compartido) + sus indices.
3- Si NetErr() devuelve .f., el fichero se abre en modo exclusivo.
4- Usa tu funcion de compactacion. (dbPack()) o PACK
5- Lo cierras y reabres en modo compartido nuevamente.
Recuerda que el uso de Pack es muy peligroso, por lo que tienes que asegurarte una copia de respaldo, antes.
Saludos.
Francisco J. Alegr铆a P.
Chinandega, Nicaragua.
Fwxh-MySql-TMySql