我在DelphiXE8中有一个多设备项目。我有一个tlistbox组件,我用数据库记录加载它。
问题是有时列表可能非常大,因此加载需要很长时间。所以我想部分加载,当我向下滚动时加载新记录。我该怎么做?
现在,我使用tfdquery加载表的每个记录。
更新:
经过一段时间后,我意识到问题不在于从数据库中加载所有记录,而在于在tlistbox中创建所有tlistboxitems。所以我仍然想做几乎相同的事情,但是现在加载所有的数据库记录,而不是为它们创建tlistboxitems。
最佳答案
从TFDQuery上的embarcadero wiki可以设置BlockReadSize
对于启用bde的数据集,设置blockreadsize也会导致
数据集以获取BlockReadSize块中的数据库信息
记录,然后缓冲。这样可以最大限度地减少
应用程序和数据库服务器。
您可以尝试的另一件事是tfdquery的FetchOptions属性
我现在没有火猴,所以我可以测试一下。