我想在内存中存储数据库的大型结果集。每条记录的长度都是可变的,访问时间必须与阵列一样快。什么是实施这个最好的方法?我正在考虑将偏移量保存在单独的表格中并连续存储所有记录?奇怪吗? (编程语言:德尔福)实现变长数组的最佳方式是什么?
1
A
回答
3
不知道我完全关注你,但看看TList。
在德尔福7至少,它是作为一种指针实施。如果您知道有多少结果回来,您可以使用容量属性提前预先分配列表。
如果空间不足,该列表将自动增长。它的增长量取决于列表的大小。
看看类单元的来源,看看它在做什么。
编辑:同样在D2009中,genist支持被添加到了TList中,使得它更好用。
1
最好的方法可能是包含指向记录的指针数组。在这种情况下,您不必处理偏移量,并且查找将保持不变。
+0
对于提问者的建议,查找仍然是不变的。 – 2008-11-12 17:00:50
0
我会使用TList,并将指针存储到您的记录。
type
pMyRecord : ^TMyRecord;
...
...
...
var
p : pMyRecord;
...
...
New(p);
with p^ do
begin
...
...
end;
...
MyList.Add(P);
0
为什么不使用数据库的MEMORY版本?大多数人都有办法在内存中保留一个完整的表,通常涉及SQL关键字MEMORY。您可以将表从磁盘复制到内存表,然后以内存速度使用所有正常的数据库操作。我知道这在DBISAM中运行良好。
0
正在关注mj2008,您可以使用TCLientDataset而不是记录数组。 结果集有多大?
相关问题
- 1. 实现睡眠函数JavaScript的最佳方式是什么?
- 2. “TryParse/Parse like”模式:实现它的最佳方式是什么
- 3. 什么是实现Viewholder设计模式的最佳方式。
- 4. 在Delphi中实现C#的BackgroundWorker的最佳方式是什么?
- 5. C#SQL:实现动态表的最佳方式是什么?
- 6. 实现App Transport安全性的最佳方式是什么?
- 7. 什么是实现这种布局的最佳方式?
- 8. 在Android中实现搜索的最佳方式是什么?
- 9. 实现此SQL查询的最佳方式是什么?
- 10. 实现电子邮件发送的最佳方式是什么?
- 11. 实现Unity Singleton的最佳方式是什么?
- 12. 什么是在asp.net中实现调度的最佳方式MVC
- 13. 实现协议的最佳方式是什么?
- 14. 实现AJAX“滑块”的最佳方式是什么?
- 15. Android:实现游戏板的最佳方式是什么?
- 16. 弃用后实现Hibernate UserType的最佳方式是什么?
- 17. 蟒蛇NDB:什么是实现类的最佳方式
- 18. 在Android上实现“存根”的最佳方式是什么?
- 19. 在CakePHP 1.3中实现REST的最佳方式是什么?
- 20. 在matlab中实现树的最佳方式是什么?
- 21. 实现记录锁定的最佳方式是什么?
- 22. 在服务器中实现AutoComplete的最佳方式是什么?
- 23. 实现忘记密码功能的最佳方式是什么?
- 24. 实现高级搜索表单的最佳方式是什么?
- 25. 实现并行无限循环的最佳方式是什么?
- 26. 实现AJAX超时的最佳方式是什么?
- 27. 实现JTree工具提示的最佳方式是什么?
- 28. 实现AJAX主菜单的最佳方式是什么?
- 29. 什么是实现python TCP客户端的最佳方式?
- 30. 通过PHP实现OpenSocial集成的最佳方式是什么?
它有助于了解您正在考虑使用哪种编程语言,并带有类似的问题。 – unwind 2008-11-12 08:01:02