On Mon, 05 May 2008, Szakáts Viktor wrote: Hi Viktor,
> Okey, just to add one bit to this: This effect does > happen in non-concurrent access too, _most likely_ > (but I'm not sure and see below) when the table state > (position, ordering or filtering) changes between two > stabilization calls. > So, the problem seems not just that the cache becomes > unsynced, but that the function browse.prg / FreshOrder() > becomes confused and cannot go back to its original > position, therefore the DO WHILE loop goes up to BOF(). > There was a pretty simple Browse() on an indexed table > posted on the list a few years ago, which could demonstrate > the problem pretty consistently. I've attached this small > example to the list, plus find another preceding conversation > with Bill Smith about this problem. Unfortunately for me > the problem didn't surface neither with Clipper nor with > Harbour this time, but it was surely there last time. > [It depends on execution/screen response time, and some > specific but normal navigation sequence]. I just can hope > this helps. I'm afraid that I cannot replicate it with current code. I'm not even sure what's the exact problem. Do you talk about the effect presented by code below? best regards, Przemek proc main() field F1 local oBrw, n cls dbCreate("_tst",{{"F1","N",10,0}}) use _tst while lastrec()<30 dbappend() F1:=recno()*10 enddo index on F1 to _tst set color to "W/R,W+/B" oBrw := TBrowseDB( 1, 1, 15, 20 ) for n := 1 to fcount() oBrw:AddColumn( TBColumnNew( FieldName( n ), ; FieldBlock( FieldName( n ) ) ) ) next dbgoto( 10 ) oBrw:forceStable() inkey(0) F1:=1001 dbcommit() oBrw:refreshAll():forceStable() inkey(0) // only last row is visible while inkey(0)!=27 oBrw:applyKey(lastKey()) oBrw:forceStable() enddo setPos(20,0) return _______________________________________________ Harbour mailing list Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour