InfoCommand


 

【功能說明】

用途:屬於 Server 端的元件,用於對資料庫進行資料存取,提供一個虛擬 SQL Command 元件 , 以此 SQL 命令來取得後端資料庫的資料並傳遞給 Client , 此元件可自動依資料庫類型為 SQL/ORACLE/OLE DB 等不同的資料庫自動產生對應的 .NET Command 元件。如要對資料進行存儲操作,則須與 UpdateComponent 配合使用。

【元件屬性】

Name( 名稱 )(string)

元件名稱,用於識別該元件。

CommandText (SQL 命令 )(string

EEP Server 需要用本屬性的 SQL 命令來直接對資料庫進行存取,一般皆為 Select 的語法,代理 Client 從資料庫來取得資料,並傳回給 Client 。此屬性可以使用 SQLBuilder 來設定。 SQL 語法也可以用 Left Join 語法關連多個 Table

CommandTimeout (SQL 命令超時時間 )( int)

SQL 命令執行的超時時間限定,超過這個時間就表示無法連接。

CommandType (SQL 命令類別 )( enum)

SQL 命令的類別,可選為:

Text SQL 命令句,一般都是設定為 Text ,預設也是。

StoredProcedure :資料庫的存儲程序。

TableDirect :直接連接資料表, EEP 不支援此種模式的連接。

EEPAlias (EEP 資料庫名稱 )(string)

可指定一個對應的 EEP ALIAS (虛擬資料庫,於 APPSRV.EXE 的「 Database Setting 」中定義), 一般 InfoCommand 的資料集是不必設定此屬性的,因為會於每個 Client Login 時告之 EEP Server ,並讓 InfoCommand 可以依 Client 所設定的 Database 來動態存取資料,這樣做的目的,是為了資料庫名稱可以獨立於系統外面,但如果有多公司多廠的資料須相互整合時,就必須指定特定的資料庫來達到同時存取多個資料庫資料的目的。

InfoConnection ( 對應 InfoConnection 名稱 )( InfoConnection)

要關聯的 InfoConnection ,此屬性不能為空。 InfoCommand 需要依據 InfoConnection 的設定關聯到要處理的資料庫,本屬性只使用在 設計模式中 , 用來對應的 Database 連線 , 使 InfoCommand 的語句 , 可以在設計模式時被 Active.

KeyFields ( 主鍵欄位 )( KeyItem)

指相對 SqlCommand 所指定主檔的主鍵欄位,一般為 PrimaryKey 可以設定多個。此用在當與 UpdateComp 元件配合時 , Update/Delete 語法中所必需定義的 Where Keyfield 欄位;另一個用途則用在 Client InfoDataSet 設定 PackedRecord , 會根據 KeyFields 來取得區間的資料等。

SecStyle ( 安全模式 )( enum)

用來控制資料保全的模式, 目前可用的模式為:

(1) ByNone 不啟動:本 InfoCommand 不作任何資料保全控管。

(2) ByUser :所有歸屬該 User 的資料都可以存取,啟動此命令時系統會自動為你加上 where 欄位 = UserID ,因此,此功能必須在 InfoCommand Table 上必須要有這個欄位來存放 UserID

(3) ByGroup :所有歸屬該使用者相對的群組資料都可以存取,啟動此命令時系統會自動為你加上 where 欄位 IN ( User 群組 ) ,此功能必須在 InfoCommand Table 上必須要有這個欄位來存放 GroupID

(4) ByRole: Login 者的角色可能 有多人 , 所以 Where SecFieldNameIN ( 多個角色 )

(5) ByOrg: 就是組織中的主管可以存取所有其屬下的資料 , 組織是一個 TREE 的結構 , 所以系統在 InfoCommand Where 語法中會自動加上 IN ( 該主管的所有屬下角色 ..).

(6) ByOrgShare: 除了與 ByORG 一樣外 , 又增加了同一個部門中的資料可以相互分享 , 即在 TREE 的結構上同一個部門下的成員的資料都是共享的 , 不同部門不共享 .

SecFieldName ( 安全管制欄位 )(string)

用來定義 SecStyle 的欄位名稱,如果 SecStyle = ByUser 就是指建檔者 userid 的欄位名稱,如果 SecStyle = ByGroup 即指此資料的所屬部門(群組)的欄位名稱。

SecExcept ( 安全管制例外組群 )(string)

可以定義一個或多個例外的群組( UserGroup ),該 user 如果隸屬這些群組時 , SecStyle 就會失效 , 如高級主管 / 財務部門 /MIS 部門等群組 , 都是可以不受資料安全機制所管控的。

SelectTop ( 取前幾筆資料 )( int)

Seletct TOP N 的設定值,如果對方為 SQL Server 時,可用此來增快效能。

SiteControl ( 數據分割 )( bool)

用來自動分割多廠或分公司事業體數據的控制,此要配合 Client 端的 Login 系統變數 ( 存在 CliUtils.fSideCode ) 在每次啟動 Infocommand 時,就會自動加入 Where SiteFieldName 欄位 = fSideCode fSideCode 是依每個 Client 來決定之,而欄位內容則記錄分公司或工廠的代號。此即可 Client fSideCode 自動過濾資料。

SiteFieldName ( 分割欄位 )(string)

SiteControl =True 時, 則以此欄位名稱做為多公司多廠的欄位名稱。

【事件】

此元件無事件。

【功能函數】

此元件無功能函數。

Converted from CHM to HTML with chm2web Pro 2.85 (unicode)