Hi Rich,
Here's relevant piece of code from our Recycle routine
...
SET DELETED OFF
SET ORDER TO
llGotOne = .F.
SCAN FOR DELETED()
IF RLOCK()
llGotOne = .T.
BLANK
RECALL
EXIT
ENDIF
ENDSCAN
...
...
>We have a situation where the table size is approaching the 2GB limit. There is a process in place to extract a set of records, put them in an archive table, delete them, and then pack the table.
>
>Obviously, this requires a maintenance window to grab exclusive access to the table. This isn't always easy to get.
>
>My suggestion (based on several similar one's I've seen here) is to do essentially the same archive process but not pack the table. Whenever a new record needs to be insertted, the system will search for a deleted() record. If it finds one it BLANKS it and then updates the data. Otherwise it will follow the same Insert routine it now uses.
>
>The tables are NOT part of a database container and I'm pretty sure that no buffering is done. I'm also pretty sure that any solution which requires adding buffering would be rejected. In a multi-user environment (a couple of dozen simultaneous users) I'm wondering what the best technique is to avoid a situation where two users try to grab the same deleted record.
>
>All responses appreciated............Rich
--sb--