愛招飛幫助手冊 愛招飛幫助手冊
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • FastERP-1
  • Smart
  • PinToo
  • FastWeb
  • FastERP-2 企業管理系統 (opens new window)
  • 印染業ERP (opens new window)
  • 工廠終端機 (opens new window)
  • TARS
  • MARS
  • TaskRunner
  • Flying
  • FastDesk
  • HiDesk
  • HiNAT
  • FastBPM
  • 設備故障診斷 (opens new window)
  • 設備最佳運轉效益 (opens new window)
  • 企業智能助手SmeGPT (opens new window)
  • 燈號管理 (opens new window)
  • 戰情室 (opens new window)
  • 能源管理 (opens new window)
  • 人車定位 (opens new window)
  • 戰情指揮系統 (opens new window)
  • FastERP-1
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
  • FastWeb幫助主頁
  • 學習手冊

    • 基本入門

    • 功能介紹

    • 控制元件說明

      • 屬性與事件
      • 桌面控制元件

        • 標準控制元件
        • 附加控制元件
        • 數據控制控制元件
        • 圖表控制元件
        • 儀表控制元件
        • 製圖控制元件
        • 資料庫控制元件
          • 1. TUgFDConnection
            • 1.1. 屬性
            • 1.1.1. Connected
            • 1.1.2. Params
            • 1.2. 事件
          • 2. TUgFDTransaction
            • 2.1. 屬性
            • 2.1.1. Connection
            • 2.1.2. Options
            • 2.2. 事件
            • 2.3. 方法
            • 2.3.1. Commit
            • 2.3.2. Rollback
            • 2.3.3. StartTransaction
          • 3. TUgFDCommand
            • 3.1. 屬性
            • 3.1.1. Active
            • 3.1.2. ActiveStoredUsage
            • 3.1.3. CommandKind
            • 3.1.4. CommandText
            • 3.1.5. Marcos
            • 3.1.6. Params
            • 3.2. 事件
            • 3.3. 方法
            • 3.3.1. Close
            • 3.3.2. Open
            • 3.3.3. MarcoByName
            • 3.3.4. ParamByName
            • 3.3.5. Prepare
          • 4. TUgFDQuery
            • 4.1. 屬性
            • 4.2. 方法
            • 4.2.1. Close
            • 4.2.2. Open
            • 4.2.3. FieldByName
            • 4.2.4. First
            • 4.2.5. Last
            • 4.2.6. ToJSONObjectString
            • 4.2.7. ToJSONArrayString
            • 4.2.8. ToJSONObject
            • 4.2.9. ToJSONArray
            • 4.2.10. SaveStructure
            • 4.2.11. LoadStructureJSONArray
            • 4.2.12. LoadStructureJSONString
            • 4.2.13. LoadFromJSONObject
            • 4.2.14. LoadFromJSONArray
            • 4.2.15. LoadFromJSONString
            • 4.2.16. MergeFromJSONObject
            • 4.2.17. MergeFromJSONString
            • 4.2.18. ValidateJSONObject
            • 4.2.19. ValidateJSONString
          • 5. TUgFDMemTable
            • 5.1. 屬性
            • 5.1.1. Data
            • 5.2. 方法
            • 5.2.1. FieldByName
            • 5.2.2. First
            • 5.2.3. Prior
            • 5.2.4. Next
            • 5.2.5. Last
            • 5.2.6. Edit
            • 5.2.7. Cancel
            • 5.2.8. Post
            • 5.2.9. Insert
            • 5.2.10. Append
            • 5.2.11. Delete
            • 5.2.12. Refresh
          • 6. TUgFDStoredProc
            • 6.1. 屬性
            • 6.2. 方法
            • 6.2.1. ExecProc
          • 7. TUgFDTableAdapter
            • 7.1. 屬性
          • 8. TUgFDSchemaAdapter
          • 9. TUgFDMetaInfoQuery
            • 9.1. 屬性
            • 9.1.1. BaseObjectName
            • 9.1.2. MetaInfoKind
            • 9.1.3. ObjectName
          • 10. TUgDataSource
            • 10.1. 屬性
          • 11. TUgClientDataSet
            • 11.1. 屬性
            • 11.2. 方法
            • 11.2.1. CreateDataSet
            • 11.2.2. Open
            • 11.2.3. First
            • 11.2.4. Prior
            • 11.2.5. Next
            • 11.2.6. Last
            • 11.2.7. Edit
            • 11.2.8. Cancel
            • 11.2.9. Post
            • 11.2.10. Insert
            • 11.2.11. Append
            • 11.2.12. Delete
            • 11.2.13. Refresh
            • 11.2.14. SubmitUpdates
            • 11.2.15. ToJSONObjectString
            • 11.2.16. ToJSONArrayString
            • 11.2.17. ToJSONObject
            • 11.2.18. ToJSONArray
            • 11.2.19. SaveStructure
            • 11.2.20. LoadStructureJSONArray
            • 11.2.21. LoadStructureJSONString
            • 11.2.22. LoadFromJSONObject
            • 11.2.23. LoadFromJSONArray
            • 11.2.24. LoadFromJSONString
            • 11.2.25. MergeFromJSONObject
            • 11.2.26. MergeFromJSONString
            • 11.2.27. ValidateJSONObject
            • 11.2.28. ValidateJSONString
          • 12. TUgDataSetProvider
            • 12.1. 屬性
            • 12.1.1. Options
          • 13. TUgDBNavigator
            • 13.1. 屬性
          • 14. TUgReportDataSet
          • 15. TUgReportDataView
          • 16. TUgReportDBGrid
        • 通訊控制元件
        • 伺服器控制元件
        • 多媒體控制元件
        • 3D-AI控制元件
        • IsoBean控制元件
        • 附控控制元件
      • 移動控制元件

    • 系統工具

    • 系統管理

    • 云服務工具

    • 資料庫工具

    • 專用模板

    • 外部功能

    • 開發流程

    • 函式程式

  • 開發手冊

目录

資料庫控制元件

# FastWeb資料庫控制元件

  • 適用平臺: WEB(桌面)

  該組中的控制元件用以連線資料庫並設定數據運算服務,包括查詢、統計、運算等必要的控制元件。

# 1. TUgFDConnection

  該元件是用於與資料庫進行連線的元件。在其中設定資料庫名,登錄的地址,使用者名稱,密碼等資訊后連線至資料庫,作為連線的元件來使用。

# 1.1. 屬性

屬性 說明
Connected 是否連線到資料庫
Params 連線參數的相關設定

# 1.1.1. Connected

property Connected: Boolean;
1

  該屬性用於確認元件是否需要發起資料庫的連線。為True時與資料庫進行連線,為False時斷開連線。

# 1.1.2. Params

property Params: TFDConnectionDefParams
1

  設定連線參數。

  點選右側的配置按鈕,打開參數配置的對話方塊。

  首先需要選擇資料庫的型別,在Driver ID中選擇對應的資料庫,顯示如下所示的資訊。

  需要填寫的專案如下:

名稱 說明
Database 資料庫名稱
Server 資料庫伺服器的地址
User_Name 資料庫認證的使用者名稱稱
Password 資料庫認證的使用者密碼

  填寫完成後,點選[Test]進行測試,如果出現Success字樣的提示框則說明連線參數正確,連線成功。點選[Ok]以儲存連線參數並關閉對話方塊。

# 1.2. 事件

事件 觸發條件
AfterCommit 在數據提交后觸發該事件
AfterConnect 在連線到資料庫后觸發該事件
AfterDisconnect 在斷開資料庫的連線后觸發該事件
AfterRollBack 在進行回滾操作后觸發該事件
BeforeCommit 在提交數據前觸發該事件
BeforeConnect 在連線到資料庫前觸發該事件
BeforeDisconnect 在斷開資料庫的連線前觸發該事件
BeforeRollBack 在進行回滾操作前觸發該事件

# 2. TUgFDTransaction

  該元件負責連線資料庫的事務執行的管理。

# 2.1. 屬性

屬性 說明
Connection 設定連線的控制元件
Options 設定事務行為的選項

# 2.1.1. Connection

property Connection: TFDCustomConnection;
1

  設定控制元件連線使用的控制元件,此處通常設定為TUgFDConnection的元件型別。

# 2.1.2. Options

property Options: TFDTxOptions;
1

  設定事務行為的選項。該選項不會立即生效,只有當執行事務連線時才會生效。

名稱 說明
AuotCommit 設定是否自動提交
AutoStart 設定是否自動開啟事務
AutoStop 設定是否自動停止事務
DisconnectAction 設定當斷開連線時的行為。xdCommit為提交事務,xdNone為不執行,xdRollback為回滾事務

# 2.2. 事件

事件 觸發條件
AfterCommit 當提交事務完成後觸發該事件
AfterRollback 當回滾事務完成後觸發該事件
AfterStartTransaction 當開始執行事務后觸發該事件
BeforeCommit 當開始提交事務前觸發該事件
BeforeRollback 當回滾事務前觸發該事件
BeforeStartTransaction 當開始事務前觸發該事件

# 2.3. 方法

# 2.3.1. Commit

procedure Commit;
1

  呼叫該方法可對資料庫的操作(插入,更新,刪除)進行永久性更改。

    //JScript
      //初始化事務的設定
      UgFDQuery01.Transaction = UgFDTransaction01;
      UgFDQuery01.SQL.Text = "update employees set salary = salary * :k where id = :id";
      UgFDTransaction01.StartTransaction; //開啟事務
      try{
        UgFDQuery01.ExecSQL("", [1.2, 100]);
        UgFDQuery01.ExecSQL("", [1.3, 200]);
        UgFDTransaction01.Commit; //提交事務
        }
      except{
        UgFDTransaction01.Rollback; //回滾事務
        raise;
      }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //PasScript
      //初始化事務的設定
      UgFDQuery01.Transaction := UgFDTransaction01;
      UgFDQuery01.SQL.Text := 'update employees set salary = salary * :k where id = :id';
      UgFDTransaction01.StartTransaction; //開啟事務
      try
        UgFDQuery01.ExecSQL('', [1.2, 100]);
        UgFDQuery01.ExecSQL('', [1.3, 200]);
        UgFDTransaction01.Commit; //提交事務
      except
        UgFDTransaction01.Rollback; //回滾事務
        raise;
      end;
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // Make sure to add code blocks to your code group

    # 2.3.2. Rollback

    procedure Rollback;
    
    1

      進行事務的回滾操作。

      //JScript
        //初始化事務的設定
        UgFDQuery01.Transaction = UgFDTransaction01;
        UgFDQuery01.SQL.Text = "update employees set salary = salary * :k where id = :id";
        UgFDTransaction01.StartTransaction; //開啟事務
        try{
          UgFDQuery01.ExecSQL("", [1.2, 100]);
          UgFDQuery01.ExecSQL("", [1.3, 200]);
          UgFDTransaction01.Commit; //提交事務
          }
        except{
          UgFDTransaction01.Rollback; //回滾事務
          raise;
        }
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      //PasScript
        //初始化事務的設定
        UgFDQuery01.Transaction := UgFDTransaction01;
        UgFDQuery01.SQL.Text := 'update employees set salary = salary * :k where id = :id';
        UgFDTransaction01.StartTransaction; //開啟事務
        try
          UgFDQuery01.ExecSQL('', [1.2, 100]);
          UgFDQuery01.ExecSQL('', [1.3, 200]);
          UgFDTransaction01.Commit; //提交事務
        except
          UgFDTransaction01.Rollback; //回滾事務
          raise;
        end;
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      // Make sure to add code blocks to your code group

      # 2.3.3. StartTransaction

      procedure StartTransaction;
      
      1

        開始執行事務。

        //JScript
          //初始化事務的設定
          UgFDQuery01.Transaction = UgFDTransaction01;
          UgFDQuery01.SQL.Text = "update employees set salary = salary * :k where id = :id";
          UgFDTransaction01.StartTransaction; //開啟事務
          try{
            UgFDQuery01.ExecSQL("", [1.2, 100]);
            UgFDQuery01.ExecSQL("", [1.3, 200]);
            UgFDTransaction01.Commit; //提交事務
            }
          except{
            UgFDTransaction01.Rollback; //回滾事務
            raise;
          }
        
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        //PasScript
          //初始化事務的設定
          UgFDQuery01.Transaction := UgFDTransaction01;
          UgFDQuery01.SQL.Text := 'update employees set salary = salary * :k where id = :id';
          UgFDTransaction01.StartTransaction; //開啟事務
          try
            UgFDQuery01.ExecSQL('', [1.2, 100]);
            UgFDQuery01.ExecSQL('', [1.3, 200]);
            UgFDTransaction01.Commit; //提交事務
          except
            UgFDTransaction01.Rollback; //回滾事務
            raise;
          end;
        
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        // Make sure to add code blocks to your code group

        # 3. TUgFDCommand

          該控制元件用於執行SQL命令。可使用該控制元件執行不返回結果的SQL命令。如需要獲取返回結構數據集的,選擇TUgFDQuery。

        # 3.1. 屬性

        名稱 說明
        Active 是否啟用控制元件
        ActiveStoredUsage 儲存Active屬性的方式
        ComandKind 設定命令列的型別
        CommandText 設定要執行的SQL命令
        Connection 設定連線的控制元件
        MarcosByName 宏變數集合的設定
        ParamsByName 設定宏變數的參數
        Prepare 為SQL命令的運行準備
        Transaction 設定事務控制元件

        # 3.1.1. Active

        property Active: Boolean;
        
        1

          設定是否啟用控制元件,啟用控制元件后將執行SQL命令。

        # 3.1.2. ActiveStoredUsage

        property ActiveStoredUsage: TFDStoredActivationUsage;
        
        1

          設定Active屬性儲存至DFM的方式。auDesignTime表示在設計階段使用該屬性。auRunTime表示在運行階段使用該屬性。

        # 3.1.3. CommandKind

        property CommandKind: TFDPhysCommandKind;
        
        1

          設定命令的型別,您可以在呼叫Prepare之前設定該屬性項的值。否則控制元件在分析CommandText中的內容後會自動分配該值,對於預存程序仍然需要手動分配。

          //JScript
          //Example 1:
          UgFDCommand01.CommandKind = skStoredProc;
          UgFDCommand01.CommandText.Text = "MY_PROC";
          UgFDCommand01.Prepare;
          
          //Example 2:
          UgFDCommand01.CommandText.Text = "ALTER PROCEDURE MY_PROC COMPILE";
          switch (UgFDCommand01.CommandKind){
          case skAlter: ShowMessage("Alter command");
          ..........
          default  ShowMessage("Other command");
          }
          
          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          //PasScript
          //Example 1:
          UgFDCommand01.CommandKind := skStoredProc;
          UgFDCommand01.CommandText.Text := 'MY_PROC';
          UgFDCommand01.Prepare;
          
          //Example 2:
          UgFDCommand01.CommandText.Text := 'ALTER PROCEDURE MY_PROC COMPILE';
          case UgFDCommand01.CommandKind of
          skAlter: ShowMessage('Alter command');
          ..........
          else     ShowMessage('Other command');
          end;
          
          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11
          12
          13
          // Make sure to add code blocks to your code group

          # 3.1.4. CommandText

          property CommandText: TStrings;
          
          1

            設定命令列的文字。

            設定的命令列的型別如下:

          • 要執行的SQL命令的文字。
          • 如果CommandKind位於[skStoredProc,skStoredProcWithCrs,skStoredProcNoCrs]中,則要執行的預存程序的名稱。

            設定CommandText后,FireDAC將對非預存程序執行以下操作:

          • 如果ResourceOptions.ParamCreate為True,則提取參數的名稱並填充Params屬性集合。
          • 如果ResourceOptions.MacroCreate為True,則提取宏名稱並填充Macros屬性集合。
          • 如果ResourceOptions.PreprocessCmdText為True,則提取SELECT命令的FROM表的名稱,並將其分配給CommandIntf.SourceObjectName。
          • 填充CommandKind屬性的值(如果未顯式設定)。   如果使用CommandText.Add方法新增長命令,則建議在命令修改之前呼叫CommandText.BeginUpdate,在命令修改完成之後呼叫CommandText.EndUpdate。

            稍後,當呼叫Prepare時,命令文字將被預處理並轉換為目標DBMS命令。

          # 3.1.5. Marcos

          property Macros: TFDMacros;
          
          1

          Macros屬性是宏的替換變數的集合。 如果ResourceOptions.MacroCreate為True,則在分配CommandText后將自動填充該檔案。 否則,可以手動填充。在結構編輯器中選擇該控制元件下的Marcos,點選左上角的[新增]按鈕填充該屬性集合。

            呼叫Prepare時,如果ResourceOptions.MacroExpand為True,則將宏值替換為CommandText。

            //JScript
            //Example 1 - Substitute table name:
            UgFDCommand01.CommandText.Text = "select * from &Tab";
            UgFDCommand01.Macros[0].AsIdentifier = "Order Details";
            UgFDCommand01.Prepare;
            ShowMessage(UgFDCommand01.SQLText); // select * from "Order Details"
            
            //Example 2 - Substitute WHERE condition:
            UgFDCommand01.CommandText.Text = "select * from MyTab {if !cond} where !cond {fi}";
            UgFDCommand01.Macros[0].AsString = "ID > 100";
            UgFDCommand01.Prepare;
            ShowMessage(ADCommand1.SQLText); // select * from MyTab where ID > 100
            UgFDCommand01.Macros[0].Clear;
            UgFDCommand01.Prepare;
            ShowMessage(UgFDCommand01.SQLText); // select * from MyTab
            
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            //PasScript
            //Example 1 - Substitute table name:
            UgFDCommand01.CommandText.Text := 'select * from &Tab';
            UgFDCommand01.Macros[0].AsIdentifier := 'Order Details';
            UgFDCommand01.Prepare;
            ShowMessage(UgFDCommand01.SQLText); // select * from "Order Details"
            
            //Example 2 - Substitute WHERE condition:
            UgFDCommand01.CommandText.Text := 'select * from MyTab {if !cond} where !cond {fi}';
            UgFDCommand01.Macros[0].AsString := 'ID > 100';
            UgFDCommand01.Prepare;
            ShowMessage(ADCommand1.SQLText); // select * from MyTab where ID > 100
            UgFDCommand01.Macros[0].Clear;
            UgFDCommand01.Prepare;
            ShowMessage(UgFDCommand01.SQLText); // select * from MyTab
            
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            // Make sure to add code blocks to your code group

            # 3.1.6. Params

            property Params: TFDParams;
            
            1

            Params屬性是SQL命令的參數集合。

              如果CommandKind不在[skStoredProc,skStoredProcWithCrs,skStoredProcNoCrs]中,則如果ResourceOptions.ParamCreate為True,則在分配CommandText后將自動填充Params。

              如果CommandKind位於[skStoredProc,skStoredProcWithCrs,skStoredProcNoCrs]中,則如果fiMeta位於FetchOption.Items中,則在呼叫Prepare方法后將自動填充Params。

              否則需要手動填充Params。 呼叫Prepare時,參數繫結到已準備的SQL命令。 之後,您將無法更改參數型別,否則會引發異常。

            # 3.2. 事件

            事件 觸發條件
            AfterClose 當命令被關閉后觸發該事件
            AfterExecute 當命令被執行后觸發該事件
            AfterFetch 當從命令列中獲取到遊標后觸發該事件
            AfterOpen 當命令打開后觸發該事件
            AfterPrepare 當命令列準備完畢后觸發該事件
            AfterUnPrepare 當命令列尚未準備完畢后觸發該事件
            BeforeClose 當命令被關閉前觸發該事件
            BeforeExecute 當命令被執行前觸發該事件
            BeforeFetch 當從命令列中獲取到遊標前觸發該事件
            BeforeOpen 當命令打開前觸發該事件
            BeforePrepare 當命令列準備完畢前觸發該事件
            BeforeUnPrepare 當命令列尚未準備完畢前觸發該事件
            OnCommandChanged 當CommandText出現修改時觸發該事件
            OnError 當命令執行出錯時觸發該事件

            # 3.3. 方法

            # 3.3.1. Close

            procedure Close;
            
            1

              關閉命令遊標。

            # 3.3.2. Open

            procedure Open(ABlocked: Boolean = False);
            
            1

              執行命令,並返回遊標。之後,將State設定為csOpen,然後可以使用Fetch方法從目前遊標中獲取行。 如果命令不返回遊標,則Open方法會引發異常。

            # 3.3.3. MarcoByName

            function MacroByName(const AValue: string): TFDMacro;
            
            1

              該方法根據其名稱從Marcos集合返回一個宏。如果沒有這樣的宏,則會引發異常。

            # 3.3.4. ParamByName

            function ParamByName(const AValue: string): TFDParam;
            
            1

              該方法根據其名稱從Params集合返回一個參數。如果沒有這樣的參數,則會引發異常。

            # 3.3.5. Prepare

            procedure Prepare(const ACommandText: String = '');
            
            1

              呼叫Prepare方法準備要執行的SQL命令。 之後,State的值變為csPrepared。 在執行之前,不需要為標準SQL命令呼叫Prepare,因為第一個Execute / Open將自動準備命令。 相反,如果您需要自動填充Params集合,則預存程序需要它。 準備命令后,SQLText將返回發送給DBMS的SQL命令文字。

              要準備SQL命令,DBMS連線必須處於活動狀態,否則會引發異常。

              準備之後,應用程式的呼叫無法更改命令參數的數據型別和大小,否則在下一次Execute或Open呼叫時會引發異常。

              注意:在呼叫Prepare之前,請設定參數。

              //JScript
              UgFDCommand01.Prepare("select * from MyTab");
              
              1
              2
              //PasScript
              UgFDCommand01.Prepare('select * from MyTab');
              
              1
              2
              // Make sure to add code blocks to your code group

              # 4. TUgFDQuery

                該元件為數據集元件,用於存放查詢的結果。此控制元件用於獲取具有返回數據集的SQL查詢語句,如僅執行不需要獲取返回結果的,請使用TUgFDCommand。

              # 4.1. 屬性

              名稱 說明
              Active 是否啟用數據集
              CachedUpdates 是否對更新進行快取
              Connection 設定連線使用的控制元件
              Filter 設定過濾條件
              Filtered 是否開啟過濾器
              SQL 設定資料庫查詢內容的SQL
              RecordCount 數據集中的記錄數量
              Eof 是否處於表末尾
              Bof 是否處於表開頭

              # 4.2. 方法

              # 4.2.1. Close

              procedure Close;
              
              1

                該方法用於關閉數據集。

              UgFDQuery01.Close;
              
              1

              # 4.2.2. Open

              procedure Open;
              
              1

                該方法用於打開數據集。

              UgFDQuery01.Open;
              
              1

              # 4.2.3. FieldByName

              function FieldByName(AFieldName: String): TFiled
              
              1

                設定欄位資訊。比如讀取,賦值等方式。

                //JScript
                UgFDQuery01.FieldByName("id").AsString = "1";
                
                1
                2
                //PasScript
                UgFDQuery01.FieldByName('id').AsString := '1';
                
                1
                2
                // Make sure to add code blocks to your code group

                # 4.2.4. First

                procedure First;
                
                1

                  將數據集指針指向表的第一條記錄。

                # 4.2.5. Last

                procedure Last;
                
                1

                  將數據集指針指向表的最後一條記錄。

                # 4.2.6. ToJSONObjectString

                function ToJSONObjectString(const AOnlyUpdatedRecords: Boolean = False; const AChildRecords: Boolean = True; const AValueRecords: Boolean = True; const AEncodeBase64Blob: Boolean = True): string;
                
                1

                  將數據集中目前選擇的的數據行轉換為JSON對象的數據集。輸出的格式為欄位名稱與欄位值組成的鍵值對。

                {"code":"Code1","name":1}
                
                1

                # 4.2.7. ToJSONArrayString

                function ToJSONArrayString(const AOnlyUpdatedRecords: Boolean = False; const AChildRecords: Boolean = True; const AValueRecords: Boolean = True; const AEncodeBase64Blob: Boolean = True): string;
                
                1

                  將數據集中的數據轉換為JSONArray。是由JSON對像組成的佇列。

                [{"code":"Code1","name":1},{"code":"Code2","name":2}]
                
                1

                # 4.2.8. ToJSONObject

                function ToJSONObject(const AOnlyUpdatedRecords: Boolean = False; const AChildRecords: Boolean = True; const AValueRecords: Boolean = True; const AEncodeBase64Blob: Boolean = True): TJSONObject;
                
                1

                  將數據集中目前指向的數據行轉換為JSON對像型別。

                # 4.2.9. ToJSONArray

                function ToJSONArray(const AOnlyUpdatedRecords: Boolean = False; const AChildRecords: Boolean = True; const AValueRecords: Boolean = True; const AEncodeBase64Blob: Boolean = True): TJSONArray;
                
                1

                  將數據集中的數據轉換為JSON對像序列型別。

                # 4.2.10. SaveStructure

                function SaveStructure: TJSONArray;
                
                1

                  獲取目前的數據集的結構資訊,以JSONArray的方式輸出,包括數據表的欄位名稱、數據型別、大小等資訊。

                # 4.2.11. LoadStructureJSONArray

                procedure LoadStructureJSONArray(const AJSONArray: TJSONArray; const AOwns: Boolean = True);
                
                1

                  將數據集的數據表結構從JSONArrary中載入。

                # 4.2.12. LoadStructureJSONString

                procedure LoadStructureJSONString(const AJSONString: string); overload;
                
                1

                  將數據集的數據表結構從JSON格式的字串中讀取載入。

                # 4.2.13. LoadFromJSONObject

                procedure LoadFromJSONObject(const AJSONObject: TJSONObject; const AOwns: Boolean = True)
                
                1

                  數據集從JSON對像中獲取載入單條記錄。

                # 4.2.14. LoadFromJSONArray

                procedure LoadFromJSONArray(const AJSONArray: TJSONArray; const AOwns: Boolean = True);
                
                1

                  數據集從JSON對像序列中獲取載入多條記錄。

                # 4.2.15. LoadFromJSONString

                procedure LoadFromJSONString(const AJSONString: string);
                
                1

                  數據集從JSON對象的字串中獲取載入數據記錄。

                # 4.2.16. MergeFromJSONObject

                procedure MergeFromJSONObject(const AJSONObject: TJSONObject; const AOwns: Boolean = True);
                
                1

                  數據集從JSON對像中讀取單條數據記錄併合並至數據集中。

                # 4.2.17. MergeFromJSONString

                procedure MergeFromJSONString(const AJSONString: string);
                
                1

                  數據集從JSON對像字串中讀取數據記錄併合並至數據集中。

                # 4.2.18. ValidateJSONObject

                function ValidateJSONObject(const AJSONObject: TJSONObject; const ALang: TLanguageType = enUS; const AOwns: Boolean = True): TJSONArray;
                
                1

                  用於驗證JSON對像元件是否有效。

                # 4.2.19. ValidateJSONString

                function ValidateJSONString(const AJSONString: string; const ALang: TLanguageType = enUS): TJSONArray;
                
                1

                  用於驗證JSON對像字串是否有效。

                # 5. TUgFDMemTable

                  該元件實現記憶體中的數據集功能。可以實現與資料庫進行數據交換。

                # 5.1. 屬性

                名稱 說明
                Active 數據集是否開啟
                ActiveStoredUsage 儲存Active屬性的方式
                Adapter 指定數據適配器
                Aggregrates 為數據集定義的客戶端彙總的集合
                AggregratesActive 是否自動計算彙總值
                AutoCalcFields 確定何時觸發OnCalcFields事件以及何時計算查詢欄位值
                CacheUpdates 指定數據集是否將對數據的更改記錄而無需立即將其應用於資料庫
                Constraints 指定編輯數據時必須滿足的記錄級約束
                ConstraintsEnabled 是否啟用約束檢查
                Data 表示數據集中的數據,允許將數據集中的數據複製至另外一個數據集中
                Filter 設定過濾條件
                Filtered 是否開啟過濾器

                # 5.1.1. Data

                property Data: IFDDataSetReference;
                
                1

                  Data屬性表示數據集的內部記憶體數據儲存。 使用此屬性,應用程式可以將一個FireDAC數據集的當前結構和數據複製到另一個FireDAC數據集。

                  該屬性值是對IFDDataSet介面的引用。 它是引用計數的,應用程式不需要顯式釋放它。 如果應用程式使用變數或欄位保留介面引用,則必須在關閉數據集之前釋放該引用。

                  數據集必須處於非活動狀態才能設定此屬性值,否則會引發異常。 設定后,該數據集:

                • 具有原始數據集的結構,但不包括索引,IndexDefs,過濾器等。
                • 具有原始數據集數據的副本,包括所有行版本和狀態(插入,刪除,更新,未更改)。
                • 如果原始數據集有未應用的更改,則CachedUpdates等於True。
                • 數據集處於開啟狀態。
                  //JScript
                  UgFDQuery01.SQL.Text = "select * from orders; select * from customers";
                  
                  UgFDQuery01.Open;
                  UgFDQuery01.FetchAll;
                  // assign orders records to FDMemTable1
                  UgFDMemTable01.Data = UgFDQuery01.Data;
                  
                  UgFDQuery01.NextRecordSet;
                  UgFDQuery01.FetchAll;
                  // assign customers records to FDMemTable2
                  UgFDMemTable02.Data = UgFDQuery01.Data;
                  
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  //PasScript
                  UgFDQuery01.SQL.Text := 'select * from orders; select * from customers';
                  
                  UgFDQuery01.Open;
                  UgFDQuery01.FetchAll;
                  // assign orders records to FDMemTable1
                  UgFDMemTable01.Data := UgFDQuery01.Data;
                  
                  UgFDQuery01.NextRecordSet;
                  UgFDQuery01.FetchAll;
                  // assign customers records to FDMemTable2
                  UgFDMemTable02.Data := UgFDQuery01.Data;
                  
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  // Make sure to add code blocks to your code group

                  # 5.2. 方法

                    因其為記憶體表中的數據集,其大部分方法的使用方式與TUgFDQuery相似。

                  # 5.2.1. FieldByName

                  function FieldByName(AFieldName: String): TFiled
                  
                  1

                    設定欄位資訊。比如讀取,賦值等方式。

                    //JScript
                    UgFDQuery01.FieldByName("id").AsString = "1";
                    
                    1
                    2
                    //PasScript
                    UgFDQuery01.FieldByName('id').AsString := '1';
                    
                    1
                    2
                    // Make sure to add code blocks to your code group

                    # 5.2.2. First

                    procedure Open;
                    
                    1

                      跳轉至第一條記錄。

                    # 5.2.3. Prior

                    procedure Prior;
                    
                    1

                      跳轉至前一條記錄。

                    # 5.2.4. Next

                    procedure Next;
                    
                    1

                      跳轉至后一條記錄。

                    # 5.2.5. Last

                    procedure Last;
                    
                    1

                      跳轉至最後一條記錄。

                    # 5.2.6. Edit

                    procedure Edit;
                    
                    1

                      編輯目前指向的記錄。

                    # 5.2.7. Cancel

                    procedure Cancel;
                    
                    1

                      取消對當前記錄的修改。

                    # 5.2.8. Post

                    procedure Post;
                    
                    1

                      提交數據。

                    # 5.2.9. Insert

                    procedure Insert;
                    
                    1

                      插入記錄。

                    # 5.2.10. Append

                    procedure Append;
                    
                    1

                      新增記錄。

                    # 5.2.11. Delete

                    procedure Delete;
                    
                    1

                      刪除記錄。

                    # 5.2.12. Refresh

                    procedure Refresh;
                    
                    1

                      重新整理記錄。

                    # 6. TUgFDStoredProc

                      使用TUgFDStoredProc執行伺服器端預存程序,瀏覽結果集,並編輯結果集記錄。

                    # 6.1. 屬性

                    名稱 說明
                    Active 數據集是否開啟
                    ActiveStoredUsage 儲存Active屬性的方式
                    Adapter 指定數據適配器
                    Aggregrates 為數據集定義的客戶端彙總的集合
                    AggregratesActive 是否自動計算彙總值
                    AutoCalcFields 確定何時觸發OnCalcFields事件以及何時計算查詢欄位值
                    CacheUpdates 指定數據集是否將對數據的更改記錄而無需立即將其應用於資料庫
                    Constraints 指定編輯數據時必須滿足的記錄級約束
                    ConstraintsEnabled 是否啟用約束檢查
                    Data 表示數據集中的數據,允許將數據集中的數據複製至另外一個數據集中
                    Filter 設定過濾條件
                    Filtered 是否開啟過濾器
                    Params 設定預存程序使用的參數
                    SchemaAdapter 獲取或設定對模式適配器的引用作為「集中式快取更新」日誌
                    StoredProcName 指定在伺服器端呼叫的預存程序的名稱
                    Transaction 指定事務連線使用的控制元件

                    # 6.2. 方法

                    # 6.2.1. ExecProc

                    procedure ExecProc; overload;
                    function ExecProc(const AProcName: String): LongInt; overload;
                    function ExecProc(const AProcName: String; const AParams: array of Variant): LongInt; overload;
                    function ExecProc(const AProcName: String; const AParams: array of Variant;  const ATypes: array of TFieldType): LongInt; overload;
                    
                    1
                    2
                    3
                    4

                      執行預存程序。

                      //JScript
                      //1
                      UgFDStoredProc01.StoredProcName = "myproc";
                      UgFDStoredProc01.Prepare;
                      UgFDStoredProc01.ParamByName("inval").Value = 100;
                      UgFDStoredProc01.ExecProc;
                      ShowMessage(UgFDStoredProc01.ParamByName("outval").AsString);
                      
                      //2
                      UgFDStoredProc01.ExecProc("myproc");
                      
                      //3
                      UgFDStoredProc01.ExecProc("myproc;2", [100, "qweqwe"]);
                      
                      //4
                      UgFDStoredProc01.ExecProc("myproc", [100, "qweqwe"], [ftInteger, ftWideString]);
                      
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      //PasScript
                      //1
                      UgFDStoredProc01.StoredProcName := 'myproc';
                      UgFDStoredProc01.Prepare;
                      UgFDStoredProc01.ParamByName('inval').Value := 100;
                      UgFDStoredProc01.ExecProc;
                      ShowMessage(UgFDStoredProc01.ParamByName('outval').AsString);
                      
                      //2
                      UgFDStoredProc01.ExecProc('myproc');
                      
                      //3
                      UgFDStoredProc01.ExecProc('myproc;2', [100, 'qweqwe']);
                      
                      //4
                      UgFDStoredProc01.ExecProc('myproc', [100, 'qweqwe'], [ftInteger, ftWideString]);
                      
                      1
                      2
                      3
                      4
                      5
                      6
                      7
                      8
                      9
                      10
                      11
                      12
                      13
                      14
                      15
                      16
                      // Make sure to add code blocks to your code group

                      # 7. TUgFDTableAdapter

                        該控制元件提供應用與數據的連線(使用頻率極低,建議直接使用TUgFDQuery)。

                      # 7.1. 屬性

                      名稱 說明
                      DeleteCommand 刪除命令使用的UgFDCommand控制元件
                      FetchRowCommand 獲取行資訊使用的UgFDCommand控制元件
                      InsertCommand 插入數據使用的UgFDCommand控制元件
                      LockCommand 鎖表使用的UgFDCommand控制元件
                      SelectCommand 查詢操作使用的UgFDCommand控制元件

                      # 8. TUgFDSchemaAdapter

                        該元件用於支援集中式快取更新,可用於管理集中式快取更新(使用頻率極低,建議直接使用TUgFDQuery)。

                      名稱 說明
                      ResourceOptions 用於控制永續性的相關選項

                      # 9. TUgFDMetaInfoQuery

                        該元件可執行後設資料資訊查詢的數據集。處查詢後設資料資訊的相關屬性外,其餘的屬性功能與TUgFDQuery相同。

                      # 9.1. 屬性

                      名稱 說明
                      BaseObjectName 設定基本對象的名稱。 其選項與 MetaInfoKind 關聯
                      CatalogName 設定資料庫管理系統目錄的名稱。
                      MetaInfoKind 設定要檢索的後設資料型別,如果在運行時為此屬性賦值會關閉數據集。
                      ObjectName 設定要獲取詳細資訊的對象名稱。其選項與 MetaInfoKind 關聯。
                      ObjectScopes 設定對像範圍過濾器。如果設定了 CatalogName 與 SchemaName,則可選擇不使用此屬性。
                      osMy:僅針對目前使用者建立的對象。
                      osSystem:針對屬於資料庫管理系統的對象。
                      osOther:所有的對象。
                      SchemaName 設定資料庫管理系統的模式名稱。
                      TableKinds 設定表格種類的過濾器。
                      tkSynonyms:同義詞。
                      tkTablle: 常規表。
                      tkView:檢視。
                      tkTempTable:臨時表。
                      tkLocalTable:本地表。
                      WildCard 設定對像按名稱進行過濾,相當於新增了一個 LIKE 萬用字元。

                      # 9.1.1. BaseObjectName

                      property BaseObjectName: String;
                      
                      1

                        設定基本對象的名稱,名稱的選擇與 MetaInfoKind 的選項相關聯。以下是相關聯的選項說明。

                      MetaInfoKind 選項 說明
                      mkIndexFields 表名稱
                      mkPrimaryKeyFields 表名稱
                      mkForeignKeyFields 表名稱
                      mkProcs 包名稱
                      mkProcArgs 包名稱

                        BaseObjectName 屬性值與 CatalogName 和 SchemaName 一起構成完整的基礎對像名稱。 如果目前資料庫的會話中包含多個具有相同名稱但在不同目錄或不同模式中的對象,那麼我們強烈建議指定 CatalogName 和/或 SchemaName 屬性值以限制檢視的對象列表。

                      如果 BaseObjectName 區分大小寫或包含特殊字元,則必須明確引用。為該屬性賦值會關閉數據集。

                        //JScript
                          // SQL Server: retrieve foreign key fields for FK_DEPARTMENTS constraint of the Northwind.dbo.Employees table
                          UgFDMetaInfoQuery01.Connection = UgFDConnection01;
                          UgFDMetaInfoQuery01.BaseObjectName = "Northwind.dbo.Employees";
                          UgFDMetaInfoQuery01.ObjectName = "FK_DEPARTMENTS";
                          UgFDMetaInfoQuery01.MetaInfoKind = mkForeignKeyFields;
                          UgFDMetaInfoQuery01.Open;
                        
                        1
                        2
                        3
                        4
                        5
                        6
                        7
                        //PasScript
                          // SQL Server: retrieve foreign key fields for FK_DEPARTMENTS constraint of the Northwind.dbo.Employees table
                          UgFDMetaInfoQuery01.Connection := UgFDConnection01;
                          UgFDMetaInfoQuery01.BaseObjectName := 'Northwind.dbo.Employees';
                          UgFDMetaInfoQuery01.ObjectName := 'FK_DEPARTMENTS';
                          UgFDMetaInfoQuery01.MetaInfoKind := mkForeignKeyFields;
                          UgFDMetaInfoQuery01.Open;
                        
                        1
                        2
                        3
                        4
                        5
                        6
                        7
                        // Make sure to add code blocks to your code group

                        # 9.1.2. MetaInfoKind

                        property MetaInfoKind: TFDPhysMetaInfoKind;
                        
                        1

                          設定數據集要獲取的後設資料資訊的型別。選項中的含義會跟隨設定的屬性專案的變化而有區別,請參考 CatalogName、SchemaName、BaseObjectName、ObjectName 中的說明。

                        # 9.1.3. ObjectName

                        property ObjectName: String;
                        
                        1

                          設定要獲取詳細資訊的對象名稱。可設定的內容與 MetaInfoKind 的選項相關聯。以下是相關聯的選項說明。

                        MetaInfoKind 選項 說明 資料庫名稱與模式名稱
                        mkTableFields 數據表名稱 適用
                        mkIndexes 數據表名稱 適用
                        mkIndexFields 索引名稱 --
                        mkPrimaryKey 主鍵 適用
                        mkForeignKeys 外來鍵 適用
                        mkForeignKeyFields 外來鍵欄位 --
                        mkProcArgs 預存程序名稱 適用於非包預存程序
                          //JScript
                            UgFDMetaInfoQuery01.Connection = UgFDConnection01;
                            UgFDMetaInfoQuery01.MetaInfoKind = mkTableFields;
                            UgFDMetaInfoQuery01.ObjectName = "Basic_Item";
                            UgFDMetaInfoQuery01.Open;
                          
                          1
                          2
                          3
                          4
                          5
                          //PasScript
                            UgFDMetaInfoQuery01.Connection := UgFDConnection01;
                            UgFDMetaInfoQuery01.MetaInfoKind := mkTableFields;
                            UgFDMetaInfoQuery01.ObjectName := 'Basic_Item';
                            UgFDMetaInfoQuery01.Open;
                          
                          1
                          2
                          3
                          4
                          5
                          // Make sure to add code blocks to your code group

                          # 10. TUgDataSource

                            該元件為數據源元件,為數據控制類元件提供數據源。

                          # 10.1. 屬性

                          屬性 說明
                          AutoEdit 是否為數據控制類元件啟用編輯功能
                          DataSet 設定數據源使用的數據集控制元件

                          # 11. TUgClientDataSet

                            該元件為記憶體數據集元件,其運行可不依賴於資料庫驅動程式,滿足單機「瘦」資料庫應用程式的需要。在FastWeb中,以下的專案需要點選選擇該屬性,點選[新增]按鈕新增專案。

                          # 11.1. 屬性

                          屬性 說明
                          Aggregates 統計合計資訊
                          Constraints 設定欄位的限制類型資訊
                          DataNodeName 設定連線的node節點資料庫的名稱
                          FieldDefs 設計數據表字段的相關資訊
                          IndexDefs 設計數據表的索引資訊
                          Params 設計數據查詢使用的參數資訊
                          FileName 設定數據儲存檔案的名稱

                          # 11.2. 方法

                          # 11.2.1. CreateDataSet

                          procedure CreateDataSet;
                          
                          1

                            建立數據集。

                          # 11.2.2. Open

                          procedure Open;
                          
                          1

                            打開數據集。

                          # 11.2.3. First

                          procedure Open;
                          
                          1

                            跳轉至第一條記錄。

                          # 11.2.4. Prior

                          procedure Prior;
                          
                          1

                            跳轉至前一條記錄。

                          # 11.2.5. Next

                          procedure Next;
                          
                          1

                            跳轉至后一條記錄。

                          # 11.2.6. Last

                          procedure Last;
                          
                          1

                            跳轉至最後一條記錄。

                          # 11.2.7. Edit

                          procedure Edit;
                          
                          1

                            編輯目前指向的記錄。

                          # 11.2.8. Cancel

                          procedure Cancel;
                          
                          1

                            取消對當前記錄的修改。

                          # 11.2.9. Post

                          procedure Post;
                          
                          1

                            提交數據。

                          # 11.2.10. Insert

                          procedure Insert;
                          
                          1

                            插入記錄。

                          # 11.2.11. Append

                          procedure Append;
                          
                          1

                            新增記錄。

                          # 11.2.12. Delete

                          procedure Delete;
                          
                          1

                            刪除記錄。

                          # 11.2.13. Refresh

                          procedure Refresh;
                          
                          1

                            重新整理記錄。

                          # 11.2.14. SubmitUpdates

                          procedure SubmitUpdates;
                          
                          1

                            儲存並提交數據。

                          # 11.2.15. ToJSONObjectString

                          function ToJSONObjectString(const AOnlyUpdatedRecords: Boolean = False; const AChildRecords: Boolean = True; const AValueRecords: Boolean = True; const AEncodeBase64Blob: Boolean = True): string;
                          
                          1

                            將數據集中目前選擇的的數據行轉換為JSON對象的數據集。輸出的格式為欄位名稱與欄位值組成的鍵值對。

                          {"code":"Code1","name":1}
                          
                          1

                          # 11.2.16. ToJSONArrayString

                          function ToJSONArrayString(const AOnlyUpdatedRecords: Boolean = False; const AChildRecords: Boolean = True; const AValueRecords: Boolean = True; const AEncodeBase64Blob: Boolean = True): string;
                          
                          1

                            將數據集中的數據轉換為JSONArray。是由JSON對像組成的佇列。

                          [{"code":"Code1","name":1},{"code":"Code2","name":2}]
                          
                          1

                          # 11.2.17. ToJSONObject

                          function ToJSONObject(const AOnlyUpdatedRecords: Boolean = False; const AChildRecords: Boolean = True; const AValueRecords: Boolean = True; const AEncodeBase64Blob: Boolean = True): TJSONObject;
                          
                          1

                            將數據集中目前指向的數據行轉換為JSON對像型別。

                          # 11.2.18. ToJSONArray

                          function ToJSONArray(const AOnlyUpdatedRecords: Boolean = False; const AChildRecords: Boolean = True; const AValueRecords: Boolean = True; const AEncodeBase64Blob: Boolean = True): TJSONArray;
                          
                          1

                            將數據集中的數據轉換為JSON對像序列型別。

                          # 11.2.19. SaveStructure

                          function SaveStructure: TJSONArray;
                          
                          1

                            獲取目前的數據集的結構資訊,以JSONArray的方式輸出,包括數據表的欄位名稱、數據型別、大小等資訊。

                          # 11.2.20. LoadStructureJSONArray

                          procedure LoadStructureJSONArray(const AJSONArray: TJSONArray; const AOwns: Boolean = True);
                          
                          1

                            將數據集的數據表結構從JSONArrary中載入。

                          # 11.2.21. LoadStructureJSONString

                          procedure LoadStructureJSONString(const AJSONString: string); overload;
                          
                          1

                            將數據集的數據表結構從JSON格式的字串中讀取載入。

                          # 11.2.22. LoadFromJSONObject

                          procedure LoadFromJSONObject(const AJSONObject: TJSONObject; const AOwns: Boolean = True)
                          
                          1

                            數據集從JSON對像中獲取載入單條記錄。

                          # 11.2.23. LoadFromJSONArray

                          procedure LoadFromJSONArray(const AJSONArray: TJSONArray; const AOwns: Boolean = True);
                          
                          1

                            數據集從JSON對像序列中獲取載入多條記錄。

                          # 11.2.24. LoadFromJSONString

                          procedure LoadFromJSONString(const AJSONString: string);
                          
                          1

                            數據集從JSON對象的字串中獲取載入數據記錄。

                          # 11.2.25. MergeFromJSONObject

                          procedure MergeFromJSONObject(const AJSONObject: TJSONObject; const AOwns: Boolean = True);
                          
                          1

                            數據集從JSON對像中讀取單條數據記錄併合並至數據集中。

                          # 11.2.26. MergeFromJSONString

                          procedure MergeFromJSONString(const AJSONString: string);
                          
                          1

                            數據集從JSON對像字串中讀取數據記錄併合並至數據集中。

                          # 11.2.27. ValidateJSONObject

                          function ValidateJSONObject(const AJSONObject: TJSONObject; const ALang: TLanguageType = enUS; const AOwns: Boolean = True): TJSONArray;
                          
                          1

                            用於驗證JSON對像元件是否有效。

                          # 11.2.28. ValidateJSONString

                          function ValidateJSONString(const AJSONString: string; const ALang: TLanguageType = enUS): TJSONArray;
                          
                          1

                            用於驗證JSON對像字串是否有效。

                          # 12. TUgDataSetProvider

                            該元件可作為中轉通道,將Query中的數據傳遞給ClientDataSet,實現離線數據的處理。

                          # 12.1. 屬性

                          屬性 說明
                          DataSet 設定傳遞給ClientDataSet的數據集來源
                          Options 控制元件的設定選項

                          # 12.1.1. Options

                          property Options: TProviderOptions;
                          
                          1

                            設定控制元件選項。

                          名稱 說明
                          poFetchBlobsOnDemand 若包含此項,則表示數據包中不包括BLOB欄位,如果客戶端的TUgClientDataSet控制元件的FetchOnDemand屬性設為True,那麼客戶端還是能自動地請求這些數據值;否則,客戶端應用程式必須使用客戶數據集的FetchBlobs方法來檢索BOLB數據。
                          poFetchDetailsOnDemand 當用巢狀表的方式處理Master/Detail關係時,這裡的Provider表示主/明細表中的主表。若包含此項,則Detail表中的欄位將不會放入包中。不過,如果客戶端的TUgClientDataSet控制元件的FetchOnDemand屬性為True;那麼客戶端還是能自動的請求這些數據;否則, 要顯式呼叫FetchDetails方法。
                          poIncFieldProps 若包含此項,則表示數據包中將包含下列欄位屬性:Alignment、MinValue、DisplayLabel、DisplayWidth、 Visible、DidplayFormat、MaxValue、EditFormat、Currency、EditMask、 DisplayValues等。
                          poCascadeDeletes 當用巢狀表的方式處理Master/Detail 關係時,這裡的Provider表示主/明細表中的主表。若包含此項,則當主表中的記錄被刪除時,明細表中相應的記錄將自動地被刪除。
                          poCascadeUpdates 當用巢狀表的方式處理Master/Detail關係時,這裡的Provider表示主/明細表中的主表。若包含此項,則當主表中主鍵欄位的值改變時,明細表中相應的記錄將自動地被更新。
                          poReadOnly 若包含此項,則表示不允許客戶端數據集向Provider申請更新數據。
                          poAllowMultiRecordUpdates 表示一個單一的更新將同時更新關聯的許多表的記錄,這有可能是通過觸發、參照完整性或自定義的SQL 語句來實現的。
                          poDisableEdits 若包含此項,則表示不允許客戶端更新已經存在的數據值,否則,將觸發異常。
                          poDisableInserts 若包含此項,則表示不允許客戶端插入一個新的記錄,否則,將觸發異常。
                          poNoReset 若包含此項,則表示在提供數據前,不允許客戶端將游標指定在第一條記錄。
                          poAutoRefresh 若包含此項,則表示Provider將用目前的記錄重新整理客戶端的數據集,而不管它是否已經申請更新。(該功能未實現)
                          poPropogateChanges 若包含此項,則表示伺服器對記錄的更新將返回給客戶端並反映到客戶端數據集中。
                          poAllowCommandText 若包含此項,則表示客戶端可以過載相關數據集的 SQL語句、表的名字或預存程序。

                          # 13. TUgDBNavigator

                            此控制元件為資料庫導航控制元件,用於數據表的常規編輯修改等操作。包含 首頁、前頁、后頁、末頁、插入、刪除、編輯、提交、取消 等數據操作常用按鈕。

                          # 13.1. 屬性

                          屬性 說明
                          DataSource 設定控制元件繫結的數據源

                          # 14. TUgReportDataSet

                            報表欄位中使用的此元件是為報表設計服務的,不可直接置入模組視窗中使用。如需要使用報表設計的相關功能,請參考FastWeb報表設計說明。

                          # 15. TUgReportDataView

                            報表欄位中使用的此元件是為報表設計服務的,不可直接置入模組視窗中使用。如需要使用報表設計的相關功能,請參考FastWeb報表設計說明。

                          # 16. TUgReportDBGrid

                            報表欄位中使用的此元件是為報表設計服務的,不可直接置入模組視窗中使用。如需要使用報表設計的相關功能,請參考FastWeb報表設計說明。

                          製圖控制元件
                          通訊控制元件

                          ← 製圖控制元件 通訊控制元件→

                          Copyright © 2021-2025 愛招飛IsoFace | ALL Rights Reserved
                          • 跟随系统
                          • 浅色模式
                          • 深色模式
                          • 阅读模式