I tried your example and I can confirm the problem.
I then tried with ZeosDBO components and it works, but maybe because it locates row before I have a chance to click DBGrid.
Test project with ZeosDBO components is attached if you want to try it.
I still don't know how to prevent it. I don't want to switch to ZeosDBO.ZEOS loads all Data once, SQLDB didn't. As I said in other topic your program has no error.
I just need to find some other solution ...