DTS開發記錄(4) 對映列

2021-08-22 04:14:05 字數 1278 閱讀 1613

在dts開發記錄(1)--系統總體結構

一文中,我們介紹到對映列:「參與了資料對映的源列或目標列。注意,並不是所有的列都會參與對映,這是常見的情況。」

1.對映列分為:源對映列和目標對映列。

public

inte***ce

string

columnname

}public

inte***ce

public

inte***ce

get;

set;}

object

emitfiledvalue(datarowrow);

//經過itransformrule後的值}

對應的類圖如下:

經常有這樣的需求,我們需要把源列經過一定的運算變形後賦值給目標列,這是通過itransformrule體現的。

public

inte***ce

itransformrule

最常用的transformrule包括:

(1)字串替換:比如,將源列中所有的「china」替換為「chinese」之後賦值給目標列

(2)數值運算表示式:比如,將源列經過四則運算後賦值給目標列

(3)字串連線:比如,將源列的字串值銜接上「good」後賦值給目標列

針對源列的型別(字串、數值)不同,能夠採用變形的規則也不相同,這通過itransformrule的派生類解決。

3.源列**

有時候,我們需要將乙個源列依據一定的規則**為多個源子列,然後在源子列與目標列之間進行對映。常見的**規則包括:

(1)按指定長度**

(2)按分隔符**

public

inte***ce

get;

set;}

object

getsubcolumnvalue(datarowrow,

string

subcolumnname);

} breakuprule屬性表名該列採用的**規則;getsubcolumnvalue是獲取某個子列的在指定的datarow中的值。

**規則ibreakuprule的定義如下:

public

inte***ce

ibreakuprule

object

breakup(

object

filedval);

} breakup方法將源列值依據**規則**為多個子列值。

public

inte***ce

get;

set;}}

DTS開發記錄(4) 對映列

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

DTS開發記錄(8) 主鍵的影響

serializable public class primarykey this subkeylist.add subkey endregion region clear public void clear endregion region isunionpkey public bool isun...

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

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