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) |