>Can anyone explain to me what cursor buffering is, or point me to a good resource.
To put it very simply. VFP maintains a copy of your data in memory and does not release it to the underlying table(s) until you do a TableUpdate() or a TableRelease(). It is akin to what we used to do with Scatter Memvar/Gather Memvar back in the 2.x days.
Sure, this is a very simplified explanation, but it should give you an idea.
The VFP buffering concept is very powerful as it allows you do manipulate the data in memory before commiting your changes. It works in several modes, (record and table, optimistic and pessimistic locking).
It frees you from having to explicitly control locking (with the old RLock()/Flock() functions).
See the help file for: CursorGetProp() CursorSetProp() and related functions
"Once again, we come to the Holiday Season, a deeply religious time that each of us observes, in his own way, by going to the mall of his choice." -- Dave Barry