Re: Foxpro goto command and deleted records
> On 17/07/2012 23:57, Ethan Furman wrote:
>> In Foxpro if you do a
>> GOTO 7
>> with deleted off and record 7 is deleted, the record pointer doesn't
>> move (at least in version 6).
>> I don't like that.
>> I see four other options:
>> 0) don't move the pointer (listed for completeness)
>> 1) go to that record anyway
>> 2) go to the next undeleted record
>> 3) go to the seventh undeleted record (possibly the least practical)
>> 4) raise an exception
>> Any opinions?
> What happens when you 'delete' a record? Does it disappear immediately,
> or is it merely marked for deletion?
Marked for deletion.
> If it is marked for deletion, can it be unmarked? Will a marked record
> be removed when the file is closed, or does the file need to be
> explicitly purged/compacted?
Yes, it can be unmarked. No, the table must be explicitly packed.
> If it is merely marked, then I think the best option is 1, or possibly
> 4 if the file is compacted when closed.
There is a use_deleted setting that controls whether deleted records are
accessed or skipped. Skipping is fine when looping, not so fine when
going directly to a particular record.