迄今为止,我知道在ClientDataSet中的排序工作在indexDefs上。 我可以添加一个indexDef,设置我想要排序的字段,并通过ixDescending属性定义要排序的方向。Delphi TClientDataSet排序(插入)问题
我有一个ClientDataSet连接到一个数据源,这是一个DBGrid的源。 当我现在在ClientDataSet中插入一条新记录时,它会插入到表的顶部(ixDescending = false)或表的底部(ixDescending = true)。
但我想要一个降序,新的记录应该在表格顶部 - 而不是在底部。 我试图在运行时更改indexDefs来实现此目的 - 但没有成功。 有人有一个想法如何做到这一点?
我不明白 - 当我没有为索引字段设置值时,顺序是上升的。在插入新记录之前,我需要降序。 – ben 2010-07-01 05:26:27
问题可能是ClientDataset如何处理索引中的NULL值。它们可以被认为大于或小于任何其他值。如果CDS使用后一种约定,并且您使用降序,则索引字段中具有NULL值的记录将放在底部。 – 2010-07-01 09:53:19
你当然是对的。我已经选择了另一个索引字段,现在在发布新记录之前填充它,现在它在那里它应该是 - 谢谢;) – ben 2010-07-01 18:46:37