【功能說明】
用途:使用於Server端,本元件是為了能自動化處理Client端所要求的Insert/Update/Delete等需求,Server會以此元件來下達對應的Insert/Update/Delete等SQL指令。本元件須連接到對應的InfoCommand元件,並成雙成對。
【元件屬性】
ID(名稱)(string)
元件名稱,用於識別該元件。
InfoCommand(對應InfoCommand)(InfoCommand)
對應的InfoCommand,須選擇對應的InfoCommand,否則UpdateComp則無法獨立運作。
Fields( 預設欄位明細 )(FieldAttrCollection)
特殊控制每個欄位的預設值或是否更改,可以設定下列屬性:
(1)Field(欄位名稱)(string):所要控制的欄位名稱。
(2)OriginalColumn(原始欄位名)(string):當有使用別名欄位時,此欄位要輸入原始欄位名稱。
(3)UpdateEnable( 更改致能 )(bool) :True 代表此欄位要進行更改, False 代表不進行更改,目的是用來過濾有 Left Join 別表的欄位不要進行對主資料表進行更改。(此用在 Update/Insert 時 )
(4)DefaultValue( 預設值 )(string) : 支持文字、數字,會依欄位型態自動轉換,如果要動態的內容值,也可使用函數方式,或者可以配合 UpdateComp 的BeforeUpdate 或BeforeInsert 的事件來處理。
(5)TrimLength( 截斷長度 )(int) : 可以讓型態為 String 的欄位依此長度截斷 , 預設為 0 代表不截斷。
(6)DefaultMode( 預設選項 )(enum) : 為控制 DefaultValue 的模式,共有三種: 1. 新增時預設;insert 2. 更改時預設;update 3. 新增更改時都預設:both。
RowAffectsCheck(影響行數檢查)(System.Boolean)
設置是否要檢查更新影響的行數。
UpdateifExists(如果存在是否更新)(bool)
可以配合前端的importExcel方法從Excel上傳資料來新增,設定UpdateIfExists為True時,可以重複導入,沒有重複的資料會以Insert導入,重複的資料會自動以Update的動作進行更新。
IsolationLevel(隔離層次)(enum)
指DataBase的隔離層次,預設為ReadCommitted,其他還有ReadUncommitted,請參考資料庫的Isolation Level的說明。
【事件】
OnBeforeApply(存檔前):不管是Insert/Delete/Update,都會在上述動作之前先執行存檔前這個事件。
OnAfterApply(存檔後):不管是Insert/Delete/Update,都會在存檔成功後執行這個事件。
OnAfterApplied(存檔後):將在Commit trans後觸發,以方便處理交易成功後的程序。
OnBeforeInsert(新增前):Insert前所要執行事件。
OnAfterInsert(新增後):Insert後所要的執行的事件。
OnBeforeDelete(刪除前):Delete前所要執行的事件。
OnAfterDelete(刪除後) :Delete後所要執行的事件。
OnBeforeUpdate(更改前):Update前所要執行的事件。
OnAfterUpdate(更改後):Update後所要執行的事件。