Since Visual FoxPro 3, the SET DELETE ON has a major performance issue when come time to deal with high volume tables.
In FoxPro 2.x, we use to have SET DELETE ON with an index tag on DELETED() on each table. Now, in Visual FoxPro, this can no longer be applied because of the performance issue related to a major change in the infrastructure of the engine itself.
So, now, we are better to use SET DELETE OFF which forces us to use a different approach to avoid dealing with deleted records.
One solution is to create a logical flag field to represent the status of the deletion, having an index tag on this field and adding WHERE ... AND NOT flagfield in each SQL.
Like I said, this is related to high volume data (10000 records and up).
Any other solutions or comments are welcome.