爱招飞帮助手册 爱招飞帮助手册
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
首页
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 系统工具
    • 系统管理
    • 数据库工具
    • 专用模板
    • 外部功能
    • 开发流程
    • 函数代码
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 基本入门
    • 功能介绍
    • 控件说明
    • 功能用法
    • 专用模板
    • 开发流程
    • 函数程序
  • 开发手册
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 报表设计
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • RestAPI
    • WebSocket
  • 学习手册

    • 安装配置
    • 快速上手
    • 程序架构
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
  • 学习手册

    • 安装配置
    • 快速上手
    • 界面介绍
    • 功能介绍
    • 预设资料
    • RestAPI说明
    • WebSocket说明
    • MQTT说明
    • Python说明
    • 自定程序
    • 运行卫士
    • 自动化作业
    • 函数程序
    • 控件使用
  • 开发手册
  • FastERP
  • FastWeb
  • Smart
  • PinToo
  • Flying
  • TARS
  • 通用功能

    • Report
    • Script
    • Echarts
    • Chart
    • DB Install
    • HiDesk
    • HiNAT
    • FastBPM
    • ReportBuilder
  • 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
                          • 跟随系统
                          • 浅色模式
                          • 深色模式
                          • 阅读模式