FireDAC 学习 - 1

RAD Studio 12.0的新增功能 通过支持源自Konopka Signature VCL Controls的HighDPI和新的VCL设计器,改进了应用程序的现代化。新特性:安装程序UX,在可停靠窗口中突出显示语法,代码搜索和编辑器窗口的改进,以及直接访问高性能的ToolsAPI代码编辑器。提供了惊人的生产力提升。新的基于CLANG的C++ Win64编译器预览版,支持最新的C++标准,更好地与外部库和C++代码集成。5. 现代化的VCL,具有重新加工的MDI和用于VCL的选项卡式UI (RAD Studio 支持) 阅读详情

之前玩 Delphi,数据库部分,用得最多的是 TClientDataSet。这个 TClientDataSet 有很多玩法,重点是它可以作为一个独立的内存表,无论数据来自什么数据库都支持,并且可以把内容保存为文件,也可以把内容通过远程传递。

新的 Delphi,TClientDataSet 还在,但有了新的 FireDAC 的整套数据库访问控件,它也包含一个 TDfMemeTable 内存表控件。这个内存表控件该如何使用?比如,来自数据库的数据,该如何放进去?

开始学习 FireDAC 的玩法。这里大概会写一个系列。

今天来个简单的:

--------------------------------------------------------------

开始测试

新建一个 VCL 工程。拖几个 FireDAC 的控件过来。

1. FDConnection1 用来连接数据库;我这里使用 FireBird 数据库,我自己在硬盘上创建了一个测试用的 FireBird 数据库。双击它会弹一个窗口出来,在里面可以对它要连接的数据库进行一些参数设置。参数设置正确,就可以成功连接数据库了。

2. FDQuery1,它的 Connection 属性指向 FDConnection1,这样它就可以访问对应的数据库里面的表。

2.1. FDQuery1 的 SQL 属性里面填写:select * from TAB_AUTO;这里的 TAB_AUTO 是我的测试用的数据库里面我自己建立的一个表的名字。到这里,如果一切顺利,在设计期,可以打开 FDQuery1 成功。如果有问题,查一下数据库连接的属性设置里哪个地方没做对。

3. 拖一个 FDMemTable1 到界面上;再拖一个 DataSource1 到界面上,其 DataSet 属性指向 FDMemTable1;

4. 拖一个 DBGrid1 到界面上,其 DataSource 属性指向 DataSource1;这样,当 FDMemTable1 里面有数据的时候,可以从 DBGrid1 看到。

5. 拖一个 FDGUIxWaitCursor1 到界面上,否则 FireDAC 在打开数据库的时候,会冻结界面。

6. 拖两个按钮到界面上,代码如下:

procedure TForm1.Button1Click(Sender: TObject);
begin
  FdQuery1.Open();
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  AStream: TMemoryStream;
begin
  AStream := TMemoryStream.Create;
  try
    FdQuery1.SaveToStream(AStream);

    AStream.Position := 0;
    FdMemTable1.LoadFromStream(AStream);
  finally
    AStream.Free;
  end;
end;

Button1 的代码就是打开 FdQuery1,也就是从数据库获取数据;

Button2 的代码是把 FdQuery1 的数据,输出给 FdMemTable1;

运行程序,先点 Button1,没有任何出错信息,说明成功;再点 Button2,出来一个异常:

根据上述异常提示,我去控件面板里面,找到一个控件:FDStanStorageBinLink1 拖过来放到界面上,再次运行,成功。

以下是正确的设计期的界面控件:

以下是点了【取数据】也就是 Button2 以后的执行成功的结果:

总结:

1. FireDac 的 TDataSet 要输出数据,采用 FdQuery1.SaveToStream(AStream); 的方法,但必须要拖一个 FDStanStorageBinLink1 到界面上,否则会出异常。在控件面板的 FireDAC Links 里面,还要诸如 FDStanStorageXMLLink1 等 Link,也就是说,要输出为其它格式比如 XML 也需要拖一个对应的 Link 控件过来;

2. 上述代码里面有:AStream.Position := 0;,如果没有这句,则执行 FdMemTable1.LoadFromStream(AStream); 会出现异常提示。这里说明 LoadFromStream 方法是从 AStream 的当前位置开始的。

FIREDAC连接池配置 以下在delphi XE7下测试 fdphysrcldrvrlnk1: TFDPhysOracleDriverLink; fdgxwtcrsr1: TFDGUIxWaitCursor; fdphysmysqldrvrlnk1: TFDPhysMySQLDriverLink; var adm:TFDManager; oParams: TString 阅读详情

相关推荐

delphi 官方提供的六十多个FireDAC例子

FireDAC是一套独特的通用数据访问组件,用于为Delphi和C ++ Builder开发多设备数据库应用程序。凭借其强大的通用架构,FireDAC支持从Delphi到InterBase,SQLite,MySQL,SQL Server,Oracle,PostgreSQL,IBM DB2,SQL Anywhere,Access,Firebird,Informix等的本地高速直接访问。 基于10年为数据库后端编写本地驱动程序的经验,FireDAC被构建为一个强大的访问层,支持构建真实世界高负载应用程序所需的所有功能。 FireDAC为访问不同的数据库后端提供了一个通用的API,而不会放弃对特定数据库特定功能的访问,也不会影响性能。 它使开发人员能够专注于开发应用程序,而不是关注数据库交互的复杂性。它提供了一组现代功能丰富的组件来解决所有主要的RDBMS环境。它使用一组组件来解决所有支持的RDBMS类型。它通过提供以下方面来降低总体拥有成本: 与单独的昂贵库相比,初始成本更低。 学习和熟悉独特的强大图书馆所需的时间更少。 针对不同数据库时的直接应用设计和开发。

Delphi 中 FireDAC 数据库连接(定义连接)

连接定义是一组参数,它定义了如何使用特定的FireDAC驱动将一个应用程序连接到DBMS。它相当于一个BDE别名、ADO UDL(存储的OLEDB连接字符串)或ODBC数据源名称(DSN)。关于支持的数据库管理系统和相应的参数列表,见FireDAC数据库连接。

sensor_WU 博客 2561

H3C交换机S-MLAG实战:如何用bond4模式实现服务器高可用(附避坑指南)

本文详细介绍了H3C交换机S-MLAG技术与服务器bond4模式的实战配置,帮助实现跨设备链路聚合的服务器高可用方案。通过解析S-MLAG技术优势、bond4模式选择、关键配置步骤及常见问题排查,提供了一套完整的避坑指南和优化建议,适用于企业级网络架构的高可用需求。

weixin_30790841的博客 465

Delphi 中 FireDAC 数据库连接(总览)

本系列包含一组文章,描述了如何用在Delphi中使用FireDAC设置数据库驱动和管理数据库连接。描述了为什么一组选项使FireDAC成为一个灵活的数据库框架,以及如何使用这些选项。FireDAC提供了大量的选项,这些选项被组织成一个分层的选项系统。描述了如何存储和使用FireDAC连接参数以及连接定义的含义。为了指定连接参数,一个应用程序必须使用一个连接定义。描述了如何使用FireDAC打开和关闭与DBMS的连接。描述了如何使用FireDAC的离线模式,它允许你在不与数据库持续连接的情况下处理数据。

sensor_WU 博客 1467

保姆级教程:用Altium Designer 24从零画一块PCB(附完整库文件与避坑清单)

本文提供了一份详细的Altium Designer 24(AD24)PCB设计教程,从工程创建到最终文件输出,涵盖元件库管理、原理图设计、PCB布局布线等全流程。特别适合初学者,包含STM32最小系统板的实战案例,附完整库文件和避坑清单,帮助用户快速掌握AD24的核心功能与技巧。

weixin_27697385的博客 248

无人机信号干扰系统设计方案

设计定向阻塞干扰器需要结合射频(RF)技术、功率放大技术和定向天线技术,核心目标是向特定方向发射高功率噪声信号,覆盖目标频段,阻断无人机的通信或导航信号。实际设计中需平衡功率、效率、散热和便携性,同时需考虑抗干扰技术的快速演进(如无人机加密通信和AI避障)。在合法框架下,此类设备可有效应对“黑飞”威胁,但技术滥用风险需严格管控。定向阻塞干扰器的硬件设计核心在于。

wanghao312的博客 3060

Delphi10.4使用FireDAC数据访问组件开发数据库软件学习开发教程(1)

数据库访问是Delphi / C ++ Builder的专长。最新版本的Delphi / C ++ Builder支持使用称为FireDAC的通用数据库访问组件访问各种数据源。因此,在此博客中,我将向一定程度上使用Delphi / C ++ Builder的用户解释FireDAC的基本用法。欢迎加入Delphi开发局QQ群:32422310 第一个主题 什么是数据库访问 Delphi / C ++ Builder中可用的数据库组件 为什么选择FireDAC 什么是数据库访问 最近,许多公司都

Delphi开发局QQ群:32422310 3664

《Python基础教程》内容总览篇(持续更新中)

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为优快云博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的知识进行总结与归纳,不仅形成深入且独到的理解,而且能够帮助新手快速入门。个人精心开设的《Python基础课程》专栏订阅量接近900,帮助不少同学解决了Bug。

weixin_43178406的博客 35万+

FireDAC 学习 - 2

复制数据 ClientDataSet 依赖的是 Midas.dll,也就是说它是在 Midas 框架里面的。 要想把一个 ClientDataSet 的数据复制给另外一个 ClientDataSet,最简单的做法是:ClientDataSet2.Data := ClientDataSet1.Data; 这里的 Data 是一个 Variant 变量,它内含了具体的数据。 但是,一个普通的 DataSet 比如一个 TADOQuery 是没有 Data 这个属性的。它的数据要变为 ClientData

pcplayer的博客 2988

Oracle EBS R12 AR 标准发票 核心表结构

​ Oracle EBS R12 AR 标准发票 核心表结构 聚焦手动标准发票 (Standard Invoice),按头→行→分配→税→收款计划→会计分录→历史分层,标注主键、外键、关键字段、业务含义,同时说明表间关联关系,适配开发 / 运维 / 数据核对场景。 一、主数据层(发票头 + 行,核心业务表) 1. RA_CUSTOMER_TRX_ALL 【发票头表】 作用:存储整张发票头部信息,一张发票对应一条记录,AR 发票主表。 主键:CUSTOMER_TRX_ID (唯一 ID,系统内部键) 业

金牌架构师 280

Unity 佳能SDK 及数据获取

3. 把CameraControl 下面只要是绿色的 .cs 文件都复制到Unity 中。1. 填写信息跟官方申请SDK,大概1-2个工作日会邮件回复你。2. 将SDK这两个文件放到 Unity Plugins文件夹。

我知道你很急,但是路要一步步走 1475

FireDAC与ADO读写数据的性能测试

数据库连接组件,支持三种连接方式:1.持久定义(有一个唯一名称和一个配置文件,可以由FDManager管理)3.临时定义(没有名称和配置文件,不能由FDManager管理,运行时将参数写入params属性)发现它完全可以同UNIDAC相媲美,但UNIDAC购买费用是几万美刀,而FIREDAC是免费的。fd读取数据用时2438毫秒,ado用时5590毫秒。fd读取数据用时1988毫秒,ado用时5548毫秒。fd读取数据用时363毫秒,ado用时783毫秒。fd读取数据用时10毫秒,ado用时553毫秒。

GuoGuoABC 1279

Vue2 - 详细实现安装西瓜视频 xgplayer 插件详细配置及使用教程,利用西瓜视频播放器播放 mp4、flv、hls 格式视频文件及视频推流(直播或监控摄像头画面),支持移动端H5及PC网站!

vue2,nuxt2,西瓜视频,xgplayer,插件组件,xgplayer-hls,xgplayer-flv,xgplayer-mp4,播放视频点播和直播视频流,自定义播放器样式,截屏,监控视频,vue使用西瓜播放器播放flv、hls、mp4视频,截屏按钮,直播流,报错,黑屏,加载失败,苹果ios不兼容,重连,怎么改样式,很卡,详细教程,监控实时播放推流,倍速播放,在线flv在线推流地址,HLS播放,vue西瓜播放器,vue如何使用西瓜视频插件做直播推流回流,视频点播,flv在线视频流播放,截图功能,利用

🏆 前端领域优质创作者 1万+

FireDAC,ADO性能测试

数据量2w行,字段30个 第一次open fd读取数据用时363毫秒,ado用时783毫秒 第二次open fd读取数据用时10毫秒,ado用时553毫秒 遍历所有记录 第一次 fd读取数据用时2438毫秒,ado用时5590毫秒 第二次 fd读取数据用时1988毫秒,ado用时5548毫秒 -------------------------------------...

yhcad博客 4653

FPGA DDR3实战(四):DDR地址映射自动化测试(1)—— 测试程序设计与代码逻辑

本文介绍了一种DDR地址映射自动化测试方案,旨在提高板卡调试效率。方案通过AXI4协议实现主从端通信,构建了包含地址控制器和测试数据生成器的模块化架构。测试程序支持突发传输、状态监控和错误检测,可灵活配置测试参数。采用状态机控制流程,先写入递增数据再读取比对,完成功能验证和性能评估。该方案可系统化验证DDR的正确性、稳定性和可靠性,相比传统手动测试显著提升效率。

FPGA_小田老师的博客 1976

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

FireDAC 学习 - 5:三层,远程提交,公文包模式

问题需求: 以前版本的 Delphi,三层架构的程序,采用 TClientDataSet 来作为客户端的内存表,所有用户操作都是针对 TClientDataSet 里面的记录进行增删改的操作。在这里,用户修改后的记录,叫做 Delta。操作完成后,可以实现以下功能: 1. 将用户增删查改从 ClientDataSet 里面读取出来,也即是 ClientDataSet.Delta,这是一个 Variant 类型的数据。通过网络通讯将这个数据传递给服务器端,服务器端可以直接把它赋予到一个服务器端的 Clie

pcplayer的博客 2709

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

论DATASNAP结合FIREDAC的使用方法

论DATASNAP结合FIREDAC的使用方法 自DELPHI XE5开始引入FIREDAC数据引擎以来,FIREDAC就正式成为了官方的数据引擎。一直到XE10.1 UPDATE1,据笔者观察,FIREDAC都是新版本开发当中的重中之重,其在DELPHI的地位自然是不言而喻。 DATASNAP结合FIREDAC,中间件远程方法支持的数据序列格式可谓是丰富多彩。已经不仅仅是只支持OLEVARIAN...

weixin_33749131的博客 895

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

VB摄像头监控

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

FireDAC简易教程

FireDAC简易教程(Delphi)   一、VCL下的FireDAC   1.创建数据库连接: 新建一个VCL Forms Application工程,放置一个TFDConnection控件,设置其ConnectionDefName属性,这里选择SQLite_Demo。当Connected属性设置为True时,弹出一个登陆对话框。   这个Demo是没有密码的,直接点OK进入。当

ooooh的专栏 1万+

Delphi 10.1 Berlin FireDAC 数据库开发手册:高清版指南

Delphi 10.1 Berlin FireDAC 数据库开发手册:高清版指南 【下载地址】Delphi10.1BerlinFireDAC数据库开发手册高清版V2017-05-12 Delphi 10.1 Berlin FireDAC 数据库开发手册 高清版 V2017-05-12 ...

gitblog_09738的博客 977

Delphi 中用 FireDAC 连接 Excel

今天遇到一个问 delphi相关问题的,提问者“只会ADO的连接方式”,想知道“Delphi firedacquery如何连接EXCEL”,由此产生了一点兴趣,遂研究之,后记录之,供同好参考。 通常,在 Delphi里编写一个桌面数据库应用的步骤可以很简单,拖曳4个控件即可: - TADOConnect控件,用于连接指定的数据库(ADO驱动) - TADOTable控件,用于指定...

yhcad博客 2084

firedac调用ORACLE的存储过程

firedac调用ORACLE的存储过程 EMB官方原文地址:http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Using_Oracle_with_FireDAC 笔者下面做的是中文翻译: ORALCE的存储过程,相比MSSQL,多了一个PACKAGE(包)。 因此FIREDAC调用也稍有点不同。 ORACLE创建存储过程的样例脚本如下: CRE...

weixin_33775582的博客 341

FIREDAC数据引擎

以前使用过BDE、ADO、DBX等数据引擎,后来发现它们都没有UNIDAC好用, 所以在很长的一段时间内中间件都使用UNIDAC作为数据引擎。 偶然的机会,使用了DELPHI XE5自带的FIREDAC数据引擎,在开发了几个项目以后 发现它完全可以同UNIDAC相媲美,但UNIDAC购买费用是几万美刀,而FIREDAC是免费的。 从此以后又可以少使用一个三方控件,真是一件高兴的事。...

weixin_34082177的博客 643

DATASNAP数据序列之FIREDAC的TFDJSONDataSets

DATASNAP数据序列之FIREDAC的TFDJSONDataSets DELPHI XE5开始增加了新的数据引擎——FIREDAC,它是跨平台的数据引擎,WINDOWS、LINUX、MAC、APP。。。。。。都可以使用。 随之DATASNAP也增加了新的远程方法返回数据类型——TFDJSONDataSets。 顾名思义TFDJSONDataSets是数据集列表,是多个数据集的集合,DATASN...

weixin_34080903的博客 320

用FireDAC连接oracle

环境:delphi XE7。OS:Win8.1 UP1 64bit  DATABASE:oracle 64bi

rznice的专栏 6973

FireDAC分页

研究了MySQL可以使用limit offset,count的方式分页 --示例:从第100条开始取10条记录 select * form tablename limit 100, 10 Oracle可以用rownum + minus关键字 --示例:rownum只能使用<、<=\<>操作符 --rownum参考:https://blog.youkuaiyun.com/qq_39196949/article/details/84379874 --minus参考:https://blog

cmd9x的专栏 509
上一篇: InterBase、FireBird 的自增字段和 FireDAC 数据库控件
下一篇: FireDAC 学习 - 2
pcplayer
博客等级 码龄26年 633粉丝 284原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值