簡體   English   中英

如何獲取內存中對象的數據集?

[英]How can I get a dataset of in-memory objects?

有沒有人知道一個與Generics和RTTI一起工作的TDataset后代,這樣我就可以編寫這樣的代碼,並在GUI中使用數據感知組件?

...
ds:TDataset<TPerson>;
...

procedure DoStuff;
begin    
  ds:=TDataset<TPerson>.create;
  ds.add(TPerson.Create('A.','Hitler',77));
  ds.add(TPerson.Create('O.','Bin Laden',88));
 end; 

應該是可能的。 fielddef可以通過RTTI創建,因為已知數據的確切類型。 值也可以來回自動編組,因此您可以查看和編輯類或記錄中的數據。

我討厭必須編寫大量無用的編組代碼,而已經通過RTTI獲得所需的信息。

或者有人曾經寫過某種TEnumerable < - > TDataset適配器?

這樣的事情是存在的,還是我應該開始寫一個?

...

我能找到的最接近的東西是來自Mastering Delphi 7的Marco Cantu的一個(優秀的!) 示例 ,但是代碼本身並沒有使用泛型,新RTTI系統或屬性等新語言功能,而且它沒有使用Unicode delphi。 自D7以來,TDataset也發生了變化。

TMS Aurelius中包含的TAureliusDataSet非常接近。

請訪問Inovativa的EverClassy Dataset網址www.inovativa.com.br/public

來自荷蘭的A-Dato Scheduling Technology的 DotNet4Delphi對您有好處。

在此輸入圖像描述

行情:

來自Torry的Delphi

將任何集合連接數據感知控件

DotNet4Delphi實現了許多.Net集合類,包括List <>和Dictionary <>等泛型類型 與Delphi不同的是,我們的泛型集合還實現了非泛型接口(IList,IDictionary),允許您以多種方式訪問​​集合。 這打開了將任何集合用作數據感知控件的數據源的大門,這正是(也包括在內)TListDataset組件提供的。

它針對Delphi XE和XE2。

這是一個開源計划,Delphi搖滾!

另一個是Snap Object Dataset http://digilander.libero.it/snapobject/

我找到了一個更相關的資源,無法幫助分享它! 如此相關,我認為它應該是一個單獨的帖子,而不僅僅是我的第一個答案中的更新。


Delphi XE2-XE6的Dduce庫使用TListDataSet<...>一個通用數據集組件,可用於將通用列表公開為TDataSet。

與通用數據集的實現相關的最相關單位是:

類層次結構:

TDataSet <= TCustomVirtualDataset <= TListDataset <= TListDataset <T>

是的,它繼承了很多功能......我唯一的願望就是擁有一個可以滿足較低要求的版本(德爾福XE沒有其他大部分的功能和口哨)。

外觀:

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM