我想在内存中存储数据库的大型结果集。每条记录的长度都是可变的,访问时间必须与阵列一样快。什么是实施这个最好的方法?我正在考虑将偏移量保存在单独的表格中并连续存储所有记录?奇怪吗? (编程语言:德尔福)实现变长数组的最佳方式是什么?
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. 用变步长创建网格的最佳方式是什么?
- 5. 缩短长变量访问器的最佳方式是什么?
- 6. 在Delphi中实现C#的BackgroundWorker的最佳方式是什么?
- 7. 格式化长链方法的最佳方式是什么?
- 8. 实现多个spinners的最佳方式是什么?
- 9. 实现这种结构的最佳方式是什么?
- 10. 在GridView中实现按钮的最佳方式是什么?
- 11. 在PHP中实现控制器的最佳方式是什么?
- 12. 使用MVCGrid.net实现内联DropDownList的最佳方式是什么?
- 13. 在Python中实现“from。import *”的最佳方式是什么?
- 14. 什么是实现web服务登录的最佳方式?
- 15. 什么是实现这种布局的最佳方式?
- 16. 实现颜色循环背景的最佳方式是什么?
- 17. 实现“热门内容”展示的最佳方式是什么?
- 18. 在服务器中实现AutoComplete的最佳方式是什么?
- 19. 在C#中实现Retry Wrapper的最佳方式是什么?
- 20. 什么是在asp.net中实现调度的最佳方式MVC
- 21. 实现定时器的最佳方式是什么?
- 22. C#SQL:实现动态表的最佳方式是什么?
- 23. 在java中实现映射器的最佳方式是什么?
- 24. 实现协议的最佳方式是什么?
- 25. 实现JTree工具提示的最佳方式是什么?
- 26. 实现AJAX超时的最佳方式是什么?
- 27. 什么是实现CSS样式的最佳方法?
- 28. 在Android中实现搜索的最佳方式是什么?
- 29. 什么是实现链接的最佳方式yii2 - > React js?
- 30. 实现高级搜索表单的最佳方式是什么?
它有助于了解您正在考虑使用哪种编程语言,并带有类似的问题。 – unwind 2008-11-12 08:01:02