>>>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 >USE >>Interesting it is also the analysis of RowCache/OLDVAl/CURVAL/FileCache,