CacheDataSet
【功能說明】
用途:使用於 Client 端,本元件繼承自 InfoDataSet 元件,用於將不常異動的數據快取到 Client 端來,以降低網路因經常存取這些數據所佔用的頻寬。同時可與 InfoRefVal 配合使用,可以提高效率。
【元件屬性】
Name( 名稱 )(string)
元件名稱,用於識別該元件。
Active( 啟動 )(bool)
設定目前此 CacheDataSet 是否要啟動,也可通過設定此屬性的值來啟動 / 關閉此 CacheDataSet 。
CacheFile( 文件名稱 )(string)
此元件存放在本機的檔案名稱,檔案的路徑固定為 EEPNetClient.exe 下的 Cache 目錄。
CacheMode( 同步模式 )(enum)
Client 端資料的同步機制。可選為:
All :如果主檔有異動,會自動下載所有的資料,如果資料量大可能會影響效率。
Smart :為避免下載所有資料的效率較低,可選擇此種方式,它會將 Cache 檔案的日期時間與 Server 上資料的日期時間比對,僅下載此日期後異動的資料。
None : 不做同步資料。
KeyFields( 主鍵欄位 )(Collection)
用來設定 CacheDataSet 的主鍵字段。在同步資料時,必須要設定這個屬性。
LoadData( 是否下載資料 )(bool)
在第一次被 Active 的時候是否要下載數據到 Client 。 CacheDataSet 有兩個用途,一個為基本檔案的快取功能,此用途在任一 Client 去 Active 時如果 Client 沒有資料,就必須 LoadData 下來;另一個用途就是離線的輸入,就是讓 Client 可以不必連線也可以輸入資料,此模式的 LoadData 就必須設為 False ,防止讓存在 Server 上的資料下載到 Client 端中造成速度上的浪費。
ReadOnly( 唯讀 )(bool)
是否為只讀模式,如果設成 True ,則資料將不允許更改,如果設成 False ,則可以讓 User 更改資料,並在連線的狀態下存回到 Serve 端的數據庫中。
RemoteName( 遠程 InfoCommand)(string)
Server 端的 InfoCommand 的名稱,此屬性不能為空。
ServerModify( 隨伺服端更新 )(bool)
用來控制 Server 對數據存檔後,如果 Server 端有字段再次變更,是否要通知並將 Client 端的數據更新。一般 Server 端的自動編號,賦值或計算某欄位值等功能會需要用到本屬性。
【事件】
DataFilled
(EventArg e)
在 CacheClientDataSet 取得數據後觸發。
【功能函數】
bool
Apply(Bool isClearCache)
是否將 Client 端所更改的資料存檔到 Server 端的 InfoCommand 中,以便讓後端的資料更新,如果 isClearCache 為 True ,則在成功存檔後,同時對 Cache 檔案進行清除資料的動作,如果為 False ,則不會做清除 ( 保留舊資料 ) 。
bool
ApplyUpdates()
將異動的資料存檔到後端對應的 InfoCommand 中,與 Apply 相似,等同 isClearCache=False 。
Save()
將此元件取得的數據存入對應的 Cache 檔案中。
【其他說明】
本元件繼承自 InfoDatatSet ,所以可以像 InfoDataSet
一樣使用,並具備 InfoDataSet 的 所有 功能。同時,在使用此元件時,資料表必須有以下 3 個系統欄位,分別為 UPDATE_DATE(Varchar 8) , UPDATE_TIME(Varchar 8) 與 UPDATE_STATE(Varchar
1) , UPDATE_DATE
與 UPDATE_TIME 存放資料異動時間, UPDATE_STATE 則存放資料異動的模式,「 I 」為新增,「 M 」為更改,「 D 」為刪除。 此三個字段的值,必須由開發者在資料異動時設定初值,系統不會自動產生。
| Converted from CHM to HTML with chm2web Pro 2.85 (unicode) |