到此為止我們的建模工作已經完成,在此之後我們還需要把對象保存發布到數據庫中,這就用到了Eco所提供到的PersistenceMapper組件。在Delphi 8 中Eco一共提供了13個組件,它們分別是:
編號 組件名 命名空間 功能 1 CurrencyManagerHandle Borland.Eco.Handles 用來操作當前游標所在的對象實體 2 ExpressionHandle Borland.Eco.Handles 可以將其簡單理解為一個數據源組件(TDataset),數據源通過SQL語句向數據庫查詢記錄,而ExpressionHandle更為靈活可控的OCL語句查詢對象實例 3 OclPSHandle Borland.Eco.Handles 根據OCL表達式得到元素值,其主要方法為Execute 4 OclVariables Borland.Eco.Handles定義在OCL中所使用的變量
5 ReferenceHandle Borland.Eco.Handles 建立一個數據庫連接,在使用中相當於dbConnection 6 VariableHandle Borland.Eco.Handles 通常和OclVariables一起使用 7 PersistenceMapperBdp Borland.Eco.Persistence 將對象模型通過BdpConnection.進行發布 8 PersistenceMapperXML Borland.Eco.Persistence 將對象模型通過XML格式.進行發布. 9 PersistenceMapperSqlServer Borland.Eco.Persistence 將對象模型通過SqlServer.進行發布 10 EcoAutoFormExtender Borland.Eco.WinForm 自動生成類信息窗體 11 EcoActionExtender Borland.Eco.WinForm 和Button的EcoAction屬性綁定,由按鈕事件實現對象方法 12 EcoDragDropExtender Borland.Eco.WinForm 提供Eco對象間在GUI中的拖曳支持 13 EcoListActionExtender Borland.Eco.WinForm 和Button的EcoListAction屬性綁定,用以控制CurrencyManagerHandle事件其中Extender類組件將標准的.Net組件(DataGrid,TextBox等)和ECO進行了關聯,這些Extender組件在由ECO Application Wizard創建完成後就自動生成了這些組件,我們不需要手工創建。我們下面用到的PersistenceMapper,是將對象模型發布到數據庫或XML中,同時也將對象實例存儲到數據庫中。如果我們在項目中需要轉換數據庫平台,不需要作過多的改變,僅僅將PersistenceMapper類型更改以下就可以,實現了真正的數據庫平台無關性。在本演示中我們用PersistenceMapperXML來進行數據的存儲,在程序完成需要發布時根據需要再改為其它類型的數據庫即可。
在工程視圖中雙擊打開EcoCRMEcoSpace.pas,並切換到設計視圖,從Tool Palette中雙擊PersistenceMapperXML,添加一個PersistenceMapperXML到設計器中,設置其FileName屬性為"EcoCrmData.xml",並將TEcoCRMEcoSpace的PersistenceMapper屬性設置為PersistenceMapperXML。