Delphi 10.1 Berlin FireDAC 資料庫開發筆記(1)
每次主資料表移動時 就要執行一次SQL命令、如果怕客戶端的數量太多會造成資料庫龍大的執行負荷。不適合有大量客戶端的應用
所以要結合以上2中方法 使用快儲機制(Cache)
方法:
1.使用動態引數的SQL命令
2. 設定從資料 fdqDetail 的 MasterDataSource , MasterFields 和 IndexFieldNames
3. 設定從資料表 FetchOptions.Cache 特性值 包含 fiDetails
原理:
【主資料表】的位置改變時、先前【從資料表】中的資料不會被放棄而會快儲起來,如果【主資料表】的位置稍後又回到這個位置那麼,快儲起來的【從資料表】的資料就可以再被使用而在無需在執行一次SQL命令
FireDAC 可提供同時聯機和離線資料處理的功能
資料模組【DataModel】 平臺UI無關聯,因此可以重複使用在移動平臺中。
資料處理
ArrayDML 是批處理資料的概念。
如:客戶端需要【新增/修改】大量的資料,ArrayDML 資料庫一次執行完畢。
iRecord 是一次執行數量
fdqData.params.ArraySize := iRecord // 數量
for iCur = 0 to iRecord -1 do
begin
fdqData.Params.ParamByName('xxx').asString [iCur] := xxxx
end;
fdqData.Execute(fdqData.params.ArraySize);
搜尋資料
FDQuary 元件執行SQL命令 從後端資料庫取得資料之後這些資料暫時儲存在FDQuary 元件中。
Locate / LocateEx
Locate 方法搜尋時,使用任何的欄位條件來搜尋,而不用管這個欄位是不是索引欄位。
當然開發者使用【索引欄位】來搜尋資料當然速度非常快。
有3個引數:
Locate KeyFields, KeyValues, Options
Options: lo 開頭 、 loCaseInsensitive 、 loPartialKey ...
返回: Bool 值
如:
FDQuary.Locate('Name', '李', []);
FDQuary.Locate('Name', '李', [loPartialKey]); Name欄位以'李'開頭的資料
多條件:
FDQuary.Locate('City; Rayun', VarArrayOf([‘烏魯木齊,天山區']) , []);