Ver Mensaje Individual
  #2 (permalink)  
Antiguo 17/12/2001, 20:18
Avatar de BrujoNic
BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 23 años, 5 meses
Puntos: 655
Re: Pack en ASP para Fox o Dbase

No se puede hacer un pack porque para lograr eso la tabla debe estar abierta de modo exclusiva y como va a estar interactuando con otros usuarios, no se va a poder.

Solución que hice para lograr un resultado efectivo:

1) A las tablas le agregue un campo adicional llamado BORRADO Tipo Lógico (Boolean) y a todos los registros activos le muevo en ese campo un .F. para indicar que NO esta borrado.

2) Vuelvo a generar los índices para cada tabla pero tomando en cuenta los que tengan le valor BORRADO en .F.

3) Para cada tabla genero un índice adicional al campo BORRADO donde sea igual a .T.

4) Lo anterior lo utilizo para que cuando se vaya a crear un registro nuevo, primero verifico si hay algún registro borrado y si es así, lo activo poniendo .F. en BORRADO y cambiando los valores anteriores por los nuevos. A eso se le llama reciclaje de registros.

5) Si después deseas realizar alguna depuración, puedes realizar un DELETE a todos los campos de todas las tablas cuyo valor del campo BORRADO sea igual a .T. y luego realizas el PACK . Para lo anterior, debes tener todas las tablas accesadas de modo exclusivo.

6) Si haces lo anterior, acomodas los SQL para que realice lo que necesites pero agregandole la clausula WHEN tabla.borrado = .F. .

A mi me a resultado a las mil maravillas y el reciclaje o reutilización de registros BORRADOS es más rápido que estar creando registros nuevos.

Ahí me cuentas como te fue y espero solucione tu problema.
;)