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
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour