Foxpro goto command and deleted records

MRAB python at mrabarnett.plus.com
Tue Jul 17 22:57:33 EDT 2012


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?



More information about the Python-list mailing list