Subject TIBOTable.Locate issue
Author masonwheeler
I've got a TIBOTable mapped to a DB table with 240 rows. I've got a routine that iterates over a second table that has a FK to the first table, and calls Locate on the FK value to do some processing. The FK relationship ensures that the row will be there. For ID values from 1 to 135, it works, but above 135, Locate returns False.

Looking into the code, it appears that the internal dataset has a list of buffer nodes, and it loads the first 135 of them (why i35? That's a very arbitrary number) and if Locate doesn't ask for a value that can be found in this node list, it does not check to see if its node count < self.RecordCount and fetch more from the server.

Calling Last on the TIBOTable before starting the iteration works as a workaround, presumably because it forces it to load more data. Not sure how much more it makes it load, and if this would simply cause a gap to start showing up once the table in question has more than 270 rows.