DTS開發記錄(2) 資料管道及外掛程式

2021-09-05 15:02:27 字數 1182 閱讀 8920

通過前面兩篇文章(已於2006-07-03修正)的介紹,我們已經大致明白了系統的目標的總體結構,從這篇文章開始,我們將逐漸深入到系統內部。

本文講述資料管道,資料管道是用於在資料來源/資料目標與datatable之間進行資料傳遞的元件,它是與資料庫型別和檔案型別相關的,資料從資料來源經過資料管道後,就變成與資料來源型別無關的資料了,這樣對映編輯和資料引擎便能對它們進行一致的處理。

資料管道介面定義的類圖如下:

資料管道介面idatapipe從另外兩個介面繼承:資料匯入器(idataimporter)和資料匯出器(idataexporter)。資料匯入器用於從資料來源讀取指定頁的大小的資料到datatable中。為何要分頁讀取資料,那是因為當資料來源中的記錄非常多時,一次讀取並傳遞所有的資料是不合適了,這時可以採用分頁進行分批資料處理。資料匯出器用於將資料匯出到資料目標。

目前,我們的資料來源/資料目標可以分為兩大類:檔案和資料庫。所以,從idatapipe派生了兩個介面--ifiledatapipe和idbdatapipe,用來分別對應連線到檔案的資料管道和連線到資料庫的資料管道。

為了根據檔案或資料庫的型別來建立合適的資料管道,所以我們需要乙個工廠idatapipefactory來完成這件事:

可以預見,在以後的應用中會有更多的資料庫型別和檔案型別加入進來,為了避免每次加入乙個新的資料庫型別或檔案型別時都需要改動系統原始碼並重新編譯發布,我們將資料管道做成外掛程式(addin),這樣當我們需要支援一種新的檔案型別或資料庫型別時,只需要新增乙個外掛程式即可,原來的系統不用修改和重新編譯。

於是,我們可以借助外掛程式管理器iaddinmanager(參見esframework外掛程式部分)來實現資料管道工廠idatapipefactory。

許多朋友一定覺得這篇文章講的太粗,這是我刻意為之的。很抱歉!因為這畢竟不是乙個開源專案,它的所有權也不屬於我個人(儘管它完全是我個人一手設計的),而是屬於我現在所在的公司,所以我只能點到為止,介紹一些原理性的東西,供後來者參考。

轉到:dts開發記錄(序)

DTS開發記錄(2) 資料管道及外掛程式

通過前面兩篇文章 已於2006 07 03修正 的介紹,我們已經大致明白了系統的目標的總體結構,從這篇文章開始,我們將逐漸深入到系統內部。本文講述資料管道,資料管道是用於在資料來源 資料目標與datatable之間進行資料傳遞的元件,它是與資料庫型別和檔案型別相關的,資料從資料來源經過資料管道後,就...

DTS開發記錄(4) 對映列

在dts開發記錄 1 系統總體結構 一文中,我們介紹到對映列 參與了資料對映的源列或目標列。注意,並不是所有的列都會參與對映,這是常見的情況。1.對映列分為 源對映列和目標對映列。public inte ce string columnname public inte ce public inte ...

DTS開發記錄(4) 對映列

在dts開發記錄 1 系統總體結構 一文中,我們介紹到對映列 參與了資料對映的源列或目標列。注意,並不是所有的列都會參與對映,這是常見的情況。1.對映列分為 源對映列和目標對映列。public inte ce string columnname public inte ce public inte ...