0

我需要从 SQL 中选择行,并将它们放在 CRecordSet 中。
CRecordSet 应该让它们按日期排序。
我应该在 SQL 查询上“按日期排序”,还是在 CRecordSet 中对它们进行排序,或者可能移动到对象的 CArray 并对 CArray 进行排序?

是否可以使用 SQL 查询进行排序,将它们插入 CRecordset 时,顺序将保持不变?

谢谢 !

4

1 回答 1

1

是的,您应该在选择记录集时“按日期排序”。这样,它们将在您的 CRecordsSet 中以这种方式排序。

对 CRecordset 进行排序不会影响数据库中的顺序。行由键“排序”。它们在物理数据库中没有任何(有意义的)顺序。如果你有一个“日期”键,ORDER BY DATE 子句将(希望)运行得更快——因为它可以只使用那个键——否则它会为你排序,因此会慢一些。但无论哪种方式,CRecordset 都会出现排序。

没有必要让记录在磁盘上“保持排序”,因为索引和/或 ORDER BY 子句将随时以您想要的任何顺序为您提供记录。每次获得记录时只需说“按日期排序”,它们总是看起来是……嗯……按日期排序;-)

至于移动到数组并对其进行排序,如果可能的话,您希望 SQL 数据库为您完成工作。如果你能把它保存在服务器上——大概有更多的内存等等——那就更好了。可能有一种非常特殊的情况,您希望在本地对内存中的记录进行排序,但这看起来不像。

希望有帮助。

于 2012-10-29T17:28:09.610 回答