I found something and i dont understand why does it works this way.
I have a global record(Item) variable and i set PK filter from code using * filter:
gRecItem.SETFILTER(gRecItem."No.", 'mr*');
IF gRecItem.FINDSET THEN BEGIN
REPEAT
{code here}
UNTIL gRecItem.NEXT = 0;
END;
The configurable number used to 100. (File | Database | Alter... | Advanced | Caching | Record Set)
It returns only 100 records wich is not equal with gRecItem.COUNT. It should returns more than 100 records!
If is use FIND('-') instead of FINDSET than number of result is correct equals with gRecItem.COUNT.
If i use another filter format instead of * with FINDSET than it returns correct number of result to.
Its only bat with PK + Filter(*) + FINDSET(cycle).
Why is that? Why should i use another find format to get the expected number of records or another filter format?
Cache size limit activated only with * filter otherwise no.
Please help me to understand it.