>>select 0 >>USE Stud AGAIN >>APPEND FROM DBF("csrCourseStats") >>USE >>>
CLEAR CREATE TABLE freeTable FREE (someField C) USE * DEFAULT NO BUFFERING CURSORSETPROP("Buffering",1,0) USE freeTable BEGIN TRANSACTION * THIS IS NOT TRANSACTABLE APPEND BLANK && this is out of transaction buffer ? RECCOUNT(),RECNO() && 1,1 ROLLBACK BROWSE TITLE "RECORD IS INTO THE FILE" * PUT THE TABLE INTO THE TRANS SPACE MAKETRANSACTABLE() * ALLOW BUFFERING CURSORSETPROP("Buffering",5) * ADD A BUFFERING RECORD INSERT INTO freeTable VALUES ('A') ? RECCOUNT(),RECNO() && 2,-1 * BUILD A DATASESSION BUFFER BEGIN TRANSACTION * THIS ADD A BUFFERING RECORD INTO THE DATASESSION BUFFER INSERT INTO freeTable VALUES ('B') ? RECCOUNT(),RECNO() && 3,-2 * THIS ADD A BUFFERING RECORD INTO THE DATASESSION BUFFER INSERT INTO freeTable VALUES ('C') ? RECCOUNT(),RECNO() && 4,-3 * THIS SEND THE TABLE BUFFER INTO THE DATASESSION BUFFER !!! ATTENTION !!! TABLEUPDATE() ? RECCOUNT(),RECNO() && 4, 2 SELECT 0 * OPEN THE SAME TABLE ( THIS DON'T OPEN THE FILE ) * NOW IT IS TRANSACTABLE USE freeTable AGAIN * NO BUFFERING ? "NO BUFFERING",CURSORGETPROP("Buffering")=1 * THIS RECOD GO INTO THE DATASESSION BUFFER INSERT INTO (ALIAS()) VALUES ('D') ? RECCOUNT(),RECNO() && 3,3 BROWSE TITLE "Observe the C record, but the B is not visible !!!!" * this don't change datasession buffer USE SELECT freeTable * YOU SEE THE UPDATED RECORD "C" ? RECCOUNT(),someField,RECNO() && 5,'C',2 * NEXT : * SEND THE "C" AND "D" INTO THE FILE, * AND "B" INTO THE TABLEBUFFER END TRANSACTION ? RECCOUNT(),someField,RECNO() && 5,'C',2 GO BOTTOM ? RECCOUNT(),someField,RECNO() && 5,'B',-2 * this revert THE TABLEBUFFERS 'A','B' TABLEREVERT(.t.) * RESULT 3 RECORDS BROWSE USEInteresting it is also the analysis of RowCache/OLDVAl/CURVAL/FileCache,