1. 程式人生 > 其它 >Delphi 10.1 Berlin FireDAC 資料庫開發筆記(1)

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([‘烏魯木齊,天山區']) , []);