Foxpro goto command and deleted records

Ethan Furman ethan at
Wed Jul 18 05:11:48 CEST 2012

MRAB wrote:
> On 18/07/2012 03:19, Ethan Furman wrote:
>> MRAB wrote:
>>> 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.
> If use_deleted is false, does that mean that deleted records are
> hidden, or just that when iterating through the records the deleted
> ones aren't yielded?

Definitely the latter, but I'm starting to wonder if the former should 
also be the case.


More information about the Python-list mailing list