在Delphi中处理来自TAdoQuery的大量数据
编程语言:Delphi 6在Delphi中处理来自TAdoQuery的大量数据
SQL Server在后端。
问题:
使用的每个我们需要的东西,已结束了它击中了2000次以上为获得某些事情时打数据库应用,使问题的应用程序正在缓慢。这个命中数据库发生了很多表,每个表具有不同的结构和不同的列数。所以我试图减少电话的数量。 从每张表中我们一次可以获得大约4000条记录。
建议的解决方案:
让我们从数据库中的所有数据在一次使用它的时候,我们需要它,这样我们就不必不停的按DB。
如何解决是迄今为止转向了:
有此德尔斐的版本没有一本字典。所以我们已经有了一个来自String List的字典实现(让我们假设实现是好的)。
解决方案1:
商店这是我们与创造的字典: 一个独特的领域作为重点。 并添加数据的其余部分作为字符串列表字符串分隔这样的: FiledName1:FileValue,FieldName2:FieldValue2,... .. 可能要创建约2000字符串列表将数据映射到按键。 我看了看下面的链接: How Should I Implement a Huge but Simple Indexed StringList in Delphi? 看起来他们可以移动到不同的数据库不可能和我在一起。 这是一个理智的解决方案吗?
解决方案2:
将此存储在带List的字典中。 该列表将包含Delphi记录。 Delphi TList of records
解决方案3:
或给予我使用TAdoQuery我应该用寻求或定位找我的记录 记录可以到让我看了看这个链接不是直接加入。 请教最好的方法来做到这一点?
要求:
需要随机存取此数据。 当我们根据需要获取所有数据时,插入数据只会发生一次。
只需要读取数据,不必修改。
需要不断在主键的字词进行搜索。
除了改变我们已经做了很好的索引上DB照顾的东西从DB侧的应用程序。这更多的是让应用程序顺利运行。
回答:
这听起来像一个完美的使用情况TClientDataSet。这是一个内存数据集,可以轻松进行索引,过滤和搜索,保存可以使用SQL语句从数据库中检索的任何信息,并且在数千行合理大小的数据行上具有相当不错的性能。 (上面的链接是针对当前的文档,因为我没有一个可用于Delphi 6文档的链接,它们应该非常相似,但我不记得哪个特定版本能够将MidasLib
直接包含在您的使用条款中以消除与您的应用程序分发Midas.dll
)。
凯里詹森几年前写了一系列有关它的文章,你可能会发现有用的。第一个可以在A ClientDataset in Every Database Application中找到 - 系列中的其他人是从它链接的。
以上是 在Delphi中处理来自TAdoQuery的大量数据 的全部内容, 来源链接: utcz.com/qa/263365.html