FireDAC 学习 - 4:属性继承

C++Builder 5项目实战:从经典VCL开发到现代化重构指南 可视化组件库(VCL)作为高效的桌面应用开发框架,通过基于属性的组件化模型,实现了界面快速构建与业务逻辑的分离。其核心原理在于将UI元素封装为独立对象,通过事件驱动机制响应用户交互,在提升开发效率的同时,保持了底层C++代码的可控性。这一技术价值体现在能够大幅缩短从原型到产品的开发周期,特别适合需要快速迭代的工业控制、数据采集等场景。本文以经典著作《C++Builder 5编程实战》中的项目为例,深入探讨如何将基于BDE、Indy等传统组件的遗留系统,迁移至FireDAC、GDI+等现代技术栈,并解决多线程 阅读详情

我们知道,TFdQuery 是通过 TFdConnection 去连接数据库的。

而 TFdConnection 连接数据库的参数,可以通过 TFdManager 获得。

打开前面的例子程序,在设计期,选择 FdQuery1,看看其属性面板,有一个属性:FetchOptions,这个属性可以拉开,里面有一堆属性可以设置。

选中 FdConnection1,查看其属性面板,也有一个 FetchOptions 属性;

选中 FdManager1 查看其属性面板,也有一个 FetchOptions 属性。

默认情况下,也就是拖了上述几个控件到界面上,什么属性都不去修改的情况下,FdQuery1 的 FetchOptions 属性里面的那一堆属性值,是默认跟随 FdQuery1.FetchOptions 里面的属性的。这里我们可以做一个实验:

1. 在属性面板选择 FdQuery1 的 FetchOptions 属性,拉开,里面最后一个属性名是 Unidirectional,其值是 False;

2. 在属性面板上查看 FdConnection1 的相同属性,也是 False;

3. 在属性面板上查看 FdManager1 的相同属性,也是 False;

4. 修改 FdManager1 的该属性为 True;

5. 选择 FdQuery1,在属性面板查看该属性,已经自动变为 True 了。说明它自动跟随 FdManager1 的属性设置。

上述自动跟随的好处是,当你有一大堆的 TFdQuery 的时候,只要集中在 FdManager1 里面设置相关属性就可以了,无需逐个 TFdQuery 去设置。

------------------------ 分割线 ------------------------

但是,如果某个 TFdQuery 需要单独设置某个属性,也是可以的。还是以 Unidirectional 作为例子,在 FdManager1 里面已经设置为 True,则 FdQuery1 也跟随为 True。这时候,如果 FdQuery1 我要单独设置为 False 怎么办?

直接选择 FdQuery1,在属性面板 里面,将这个属性设置为 False 就可以了。这时候,FdQuery1 的 FetchOptions 拉开的一堆属性的第一个属性名为 AssignedValues 的属性里面,多了一个 [evUnidirectional]。意思是,AssignedValues 里面有哪个属性的名字,哪个属性就可以单独设置而不跟随 FdManager。

如果程序写了一半,你又想要那个属性跟随 FdManager 的设置,在其 FetchOptions 属性底下的 AssignedValues 属性里面,把该属性对应的名字去掉,就可以了。

Delphi实战宝典:从入门到项目开发的全面指南 本文是Delphi编程的实战宝典,从环境搭建到项目开发全面指导。详细介绍了Pascal语言核心要点、记事本应用开发实战、性能优化技巧及现代Delphi开发实践,帮助开发者快速掌握Delphi编程技能并应用于实际项目。 阅读详情

相关推荐

Delphi 10x FireDAC数据库开发与实战原码解析

FireDAC是一个为Embarcadero Delphi和C++ Builder打造的高性能数据访问库,它以一套统一的API支持多种数据库系统。FireDAC的引入,使得开发者可以更加便捷地构建出跨平台的数据库应用,从而解决单一数据库依赖的局限。其主要优势包括快速的性能、全面的数据库支持,以及对各种数据库特性的深度利用。在开始介绍之前,需要了解FireDAC是作为Delphi环境中的一部分,因此它继承了Delphi语言的简洁和高效,同时FireDAC的组件化设计使其拥有高度的可配置性和灵活性。

weixin_29155599的博客 1317

使用 FireDAC 分页查询

FireDAC 原生支持分页查询,不用写分页查询SQL,只要设置 FetchOptions.Recskip (跳过的行数)和 RecsMax(分页大小)允许通过结果集进行分页。打开游标后,将跳过第一个RecsSkip。其余的记录,最多RecxMax将被获取。当 Prepared 后,更改RecsSkip 和 RecsMax属性值不起作用。因此,在获取下一行页之前,该命令必须未准备,然后再次执行。例如: // 分页大小为 20,查询第一页 FDQuery1.FetchOptions....

GuoGuoABC 801

Python GUI开发实战:DelphiForPython构建原生Windows桌面应用

图形用户界面(GUI)是提升软件易用性和交互性的关键技术,它将复杂的命令行操作封装为直观的视觉元素。其核心原理基于事件驱动模型,通过消息循环响应用户操作,实现组件间的通信。掌握GUI开发能显著提升工具的实用价值和传播范围,尤其适用于数据分析、自动化工具等需要友好界面的应用场景。本文聚焦于DelphiForPython方案,它通过Python调用成熟的VCL框架,让开发者能够构建出具有原生性能和丰富组件生态的Windows桌面应用。

weixin_34208185的博客 400

FireDAC连接池的使用

首先是,FireDAC的连接池必须使用TFDManager,由TFDManager来对池进行管理,使用ConnectionDef管理数据连接参数,其中主要使用INI配置文件或AddConnectionDef增加配置的方式。以前一直习惯用ADO,后来用FireDAC时也没怎么使用连接池,前段时间对FireDAC的连接池做了一些简单的学习,当时的学习重点放在了连接的配置参数方面。

tanqth的专栏 5228

C++Builder实战教程:从环境配置到数据库开发的完整学习路径

在桌面应用开发领域,IDE的选择直接影响开发效率与项目维护成本。RAD(快速应用开发)工具通过可视化设计器和组件封装,显著降低了界面程序的构建门槛,尤其适合工业控制、医疗设备等场景下的上位机软件。C++Builder作为经典的RAD工具,其VCL框架提供了丰富的Windows原生控件,而FMX则支持跨平台部署,开发者可根据目标平台灵活选型。数据库交互是业务系统的核心,FireDAC组件以统一的访问接口支持SQLite、MySQL等主流数据库,配合参数化查询与事务处理,能够稳定支撑数据采集与展示。从环境配置、

weixin_28836507的博客 214

Delphi编程实践:从基础到高级应用

Delphi是一种先进的集成开发环境(IDE),自1995年由Borland公司推出后,迅速成为Windows平台上最受欢迎的快速应用程序开发工具。Delphi采用了易于学习和使用的Pascal语言作为其编程语言基础,支持面向对象编程,具备快速开发的能力,使得程序员可以以较少的代码行数完成复杂的应用开发。对象是面向对象编程(OOP)中最基本的概念。它是一个实例,代表具有唯一标识符的一组属性和操作,这些属性和操作共同定义了对象的“状态”和“行为”。

weixin_30765637的博客 842

FireDAC FDQuery

http://docwiki.embarcadero.com/RADStudio/XE6/en/TFDMemTable_Questions#Q:_How_can_I_copy_all_records_from_FDQuery_into_FDMemTable_and_edit_them_in_FDMemTable.3F http://docwiki.embarcadero.com/RADStudi...

weixin_34311757的博客 892

Delphi编程全方位资源集合

VCL(Visual Component Library)是Delphi的基础框架,它提供了丰富的组件集合,用于快速开发Windows平台的应用程序。VCL框架的核心是组件对象模型,该模型允许开发者通过可视化界面拖放组件,并利用强大的事件驱动机制实现应用程序的业务逻辑。VCL通过封装Win32 API,使得开发者不需要深入了解底层的Windows编程,就可以创建具有专业外观和感觉的应用程序。

weixin_35755823的博客 974

FireDAC 学习 - 3:建立数据库连接 之 TFDManager

使用数据库,第一步是建立和数据库的连接。结果关于连接,不是第一篇,而是本系列第三篇。 我使用 FireBird 开源数据库作为测试。FireDAC 支持 FireBird。 在本系列第一篇,我没有仔细说 FDConnection1 是如何与数据库建立连接的。我用了最简单的办法,也就是双击设计期拖到界面上的 FDConnection1,它会弹出一个对话框。在那个对话框里面进行设置就好了,如下图: 如上图,我指定 FireBird 数据库文件 TESTDATA.fdb 的全路径名称给 DataBase

pcplayer的博客 4412

(三) Debian 安装linuxcnc-ethercat中间件

1.在这里同样的也是需要下载一下依赖包 sudo apt install linuxcnc-uspace-dev 2.依赖包安装完成, 接着执行下面命令 sudo git clone https://github.com/sittner/linuxcnc-ethercat 还是可能出现下载网络错误下载不成功,可以直接下载我已上传百度云linuxcnc目录下 注意一下,后面make可能会出现头文件(xxx.h)的报错提示,在这里给大家一个处理办法 用aptitude 工具可以搞定 sudo apt-get

qq_30065813的博客 828

深入解析DisplayPort(DP)接口:从主链路到辅助通道的全方位技术剖析

本文深入解析DisplayPort(DP)接口的核心技术架构,重点剖析了其三大功能模块:承载视频/音频数据洪流的Main-Link主链路、负责链路训练与设备控制的AUX CH辅助通道,以及实现智能交互的HPD热插拔检测。文章详细阐述了主链路的可伸缩Lane配置、嵌入式时钟与数据成帧机制,以及辅助通道在设备发现、动态优化信号质量(链路训练)中的关键作用,揭示了DP接口实现高效率与灵活性的设计哲学。

weixin_29267307的博客 485

firedac连接mysql,FireDAC连接数据库

1.建立DataModule2.在FireDAC选项卡中找到我们的主角TFDConnection控件,并放到DataModule窗体上,把LoginPrompt设为False,这样在连接时就不会弹出登陆对话框了。然后再找到TFDManager控件,也放到DataModule窗体上,并且把Active属性设为True,这样一来,在引用了本单元的其它单元中,就可以直接把FireDAC控件的Connec...

weixin_33046149的博客 1181

C#操作SQLite数据库帮助类——SQLiteHelper

using System; using System.Collections.Generic; using System.Data.SQLite; using System.Data; namespace Com.ZCWL.Rock.Helper { public class SQLiteHelper { private static string connectionString =

跟健哥出去走走 2万+

Delphi 中 FireDAC 数据库连接(设置选项)

描述了为什么选项集使FireDAC成为一个灵活的数据库框架以及如何使用这些选项。FireDAC提供了大量的选项,这些选项被组织成一个分层的选项系统,大多数选项可以保留其默认值。

sensor_WU 博客 1124

PSM-DID实战指南:Stata代码解析与案例应用

本文详细解析PSM-DID方法在Stata中的实战应用,从理论到代码实现全面覆盖。通过倾向得分匹配(PSM)和双重差分(DID)的结合,有效解决政策评估中的选择偏差问题。文章提供完整的Stata命令代码、样例数据处理技巧和案例应用,帮助研究者准确评估政策效果。

vulkan6gpu的博客 791

从材料到磁场:ANSYS Workbench永磁体仿真全流程解析

本文详细解析了在ANSYS Workbench中进行永磁体仿真的完整流程。从钕铁硼等永磁材料的特性讲起,逐步指导如何在软件中搭建模型、定义关键磁化方向、设置边界条件与网格划分,并解读磁场分布结果。文章旨在帮助工程师掌握静磁场仿真核心技术,为电机、传感器等设备的设计与优化提供精准指导。

weixin_29229989的博客 272

firedac数据集控件的公共祖先类——TFDAdaptedDataSet

firedac数据集控件的公共祖先类——TFDAdaptedDataSet TFDQuery = class(TFDCustomQuery)TFDCustomQuery = class(TFDRdbmsDataSet)TFDRdbmsDataSet = class(TFDAdaptedDataSet) TFDMemTable = class(TFDCustomMemTable)TFDCusto...

weixin_33858485的博客 220

ER图从入门到精通:数据库建模全攻略

本文为数据库建模领域的 ER 图全面指南,系统解析从基础概念到实战应用的核心要点。首先介绍 ER 图的定义、三大组成元素(实体、属性、关系)及三种基础关系类型(一对一、一对多、多对多);其次详解绘制流程,涵盖工具选择(如 Visio、PowerDesigner)、需求分析方法及实体 - 属性 - 关系的分步建模技巧;进一步探讨弱实体、复合属性等高级概念,结合范式理论讲解模型优化策略;针对实体属性混淆、关系类型误判等常见问题提供解决方案;最后通过电商系统、图书馆管理系统等实际案例展示 ER 图设计全流程。

邓邓子的博客 4212

Delphi 中 FireDAC 数据库连接(处理错误)

EFDDBEngineException类是所有DBMS异常的基类。单个异常对象是一个数据库错误的集合,可以通过EFDDBEngineException.Errors[]属性访问,并由TFDDBError类表示。FireDAC结合了 "个性化 "和EFDDBEngineException异常和TFDDBError错误类的统一。"个性化 "意味着一个驱动程序可以有自己的异常和错误类,其中包含DBMS的特定信息。

sensor_WU 博客 1445

OpenOCD入门到精通:第 1 章 OpenOCD 概述

OpenOCD是一款开源的片上调试工具,支持60+调试适配器和8大处理器架构。它提供三大核心功能:片上调试、在系统编程和边界扫描测试。作为嵌入式开发工具链的中间桥梁,OpenOCD连接上层IDE/GDB与底层硬件,采用分层架构设计实现硬件兼容性。其配置基于Tcl脚本语言,支持网络服务接口,广泛应用于ARM、RISC-V等芯片的调试与烧录场景。

从事嵌入式linux android驱动开发,拥有全栈能力 1398

汇川Easy系列斜坡函数功能块(支持状态输出)

IN rSetValue REAL 0.000000 0.000000 不保持 目标值 1IN rMaxValue REAL 0.000000 0.000000 不保持 最大目标值 2IN rMinValue REAL 0.000000 0.000000 不保持 最小目标值 3IN rSmoothTime REAL 100.000000 100.0000 不保持 最小到最大值平滑时间 单位 秒 4IN diTs DINT 10 10 不保持 函数调用周期采样时间中断时间 5。

RXXW_Dor的博客 455

Delphi D10.X 开发过程中莫名多出FireDAC.VCLUI.Wait引用的问题

Delphi D10.X 开发过程中莫名多出FireDAC.VCLUI.Wait引用的问题的分析与解决。

tanqth的专栏 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

DMVCFramework数据库集成指南:ActiveRecord与FireDAC无缝对接教程

DMVCFramework(简称DMVC)是Delphi中一款强大的WEB API框架,支持RESTful和JSON-RPC API开发。本文将详细介绍如何通过ActiveRecord模式与FireDAC实现高效数据库集成,帮助开发者快速构建数据驱动的Delphi应用。 ## 核心概念:ActiveRecord与FireDAC的完美结合 ActiveRecord模式在DMVCFramework

gitblog_01030的博客 783

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

FireDac Locate 方法

Delphi的Locate方法 function Locate(const AKeyFields: string; const AKeyValues: Variant; AOptions: TLocateOptions = []): Boolean; override; (1) 搜索一个字段条件时非常简单,只需要输入字段以及第二个参数的数值; (2) 搜索多个字段条件,第二个参数有...

qq_18932003的博客 701

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

FireDAC 接占线导致另一个 hstmt DataSnap

[FireDAC][Phys][ODBC][Microsoft][ODBC SQL Server Driver]连接占线导致另一个 hstmt 同样的程序,在2台win10 正常,1台win10 报连接占线!   TFDStoredProcFetchOptions.ModefmOnDemandfmAll   2018.10.9 fixed 方法是 页面的create事件里,所有的FDQ...

weixin_34050389的博客 827
上一篇: FireDAC 学习 - 3:建立数据库连接 之 TFDManager
下一篇: FireDAC 学习 - 5:三层,远程提交,公文包模式
pcplayer
博客等级 码龄26年 633粉丝 284原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值