迄今爲止,我知道在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