2016-08-12 59 views
1

看來,當我將數據追加到TClientDataSet時,它們並不存儲在我附加的順序中。有時候他們有時並不是。有沒有一種選擇可以使數據按照相同的順序,例如我從文件或數據庫讀取它們?ClientDataSet:以附加順序存儲數據

我想避免創建一個單獨的列來存儲位置並在其上設置索引。

+0

不,這是不可能的。 –

+0

我不認爲它需要反對票。這是一個合理的問題,明白地問道。 –

+0

這是任何數據庫引擎的本質。 SQL Server甚至可以這樣工作。你有沒有自動遞增數字的某種ID字段?這個確切的原因,我從來沒有依靠自動分類。只有你知道你想如何分類,那不是自動的。 –

回答

1

對於數據庫,這包括TClientDataset,您永遠不能假定數據將按照您放入的順序或以任何特定順序出現在數據庫中。

如果訂單很重要,請使用另一列來存儲廣告訂單,或從另一列推導出訂單。

發生這種情況的原因之一是數據庫在刪除行時不會「聚合」其他行來填補空白,但在添加新記錄時重新使用空位。

有一個可以與TClientDataset一起使用的ftAutoInc字段類型,所以沒有太多的工作要做,以照顧新的列。

+0

這是數據集實現的依賴 – vavan

+0

這是,但一個很好的經驗法則工作。我所處理的每個數據庫和數據集都展示了這種行爲。我從來不依賴數據存儲中數據的自然排序。問候, –

+0

這並不意味着沒有例外。所以有時候可以假設數據會以數據庫的順序出現在 – vavan