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