Delphi 12中的 FireDAC、UniDAC、ADO执行效率分析

delphiFireDACuniDAC连接PostgreSQL delphiFireDACuniDAC连接Connect to PostgreSQL 哪位高手能指点下: 如何用FDConnection连接Pgsql12? http://docwiki.embarcadero.com/RADStudio/Sydney/en/Connect_to_PostgreSQL_(FireDAC)#Connection_Definition_Parameters Exe路径下缺Libpq.dll 看看你Libpq.dll 对否区分x32和x64 : ... 阅读详情

ADO性能最差,UniDAC次之、FireDAC相对较好,如下图,多线程读取本地MSSQL2008数据库,400w条记录:

AnyConn-ADO, 线程查询加载4187604条记录 到VirtualTree用时:13.75(秒)
执行SQL查询完成, 用时: 49563(ms) 49.56秒


AnyConn-UniDAC, 线程查询加载4187604条记录 到VirtualTree用时:5.109(秒)
执行SQL查询完成, 用时: 32406(ms)32.4秒


AnyConn-FireDAC, 线程查询加载4187604条记录 到VirtualTree用时:5.297(秒)
执行SQL查询完成, 用时: 31828(ms)31.8秒;

另外,ADO 不能用TADOQuery.next  历遍加载数据到视图,就算DisabledControls 也不行,测试有时有效很快加载,有时龟速,没法用。FireDAC->TFDQuery、UniDAC->TUniQuery无此问题。ADO 加载大批量数据,尽量避免直接用ADOQuery、ADOTable、ADODataSet等.next  历遍加载,要用ADO的Raw RecordSet来.Movenext  历遍加载, 速度快:

Uses
  ADOINT, ADODB;

var aQuery: _RecordSet;

aQuery:= TADOQuery(AnyQuery).Recordset;
while not aQuery.eof do
begin
   //处理数据
  aQuery.MoveNext;
end;

delphi控件安装UniDAC 我们知道,从XE以后的版本(大概是吧,记不清楚了),单元的命名规则,稍有变动,比如以前Grahpics,现在现在命名为 vcl.Grahpics,这样,命名更加清晰。现在Delphi,已经发展到了XE6,支持多种移动设备,包括Android,IOS,WinMobile,并且都是原始编译,是不是很激动人心。其二,它支持目前几乎所有的数据库驱动,包括Oracle,DB2,MySQL,MSSQL,InterBase,PostgreSQL,SQLite,ASE,Access 等,并且效率极高;按着说明一步一步来。 阅读详情

相关推荐

Delphi中使用FireDACuniDAC高效连接PostgreSQL的实战指南

本文为Delphi开发者提供了使用FireDACuniDAC组件高效连接PostgreSQL数据库的实战指南。文章详细对比了两款组件的选择策略,重点解析了驱动依赖(libpq.dll)的配置、连接参数设置、常见错误排查及性能优化技巧,旨在帮助开发者快速构建稳定可靠的数据库连接。

tomato的博客 771

UniDAC

常言道,细微之处见体贴。UniDAC有一些过人的方法或属性。 比如,刷新单条记录(RefreshRecord)、多表更新的属性(UpdatingTable)、宏替换参数(Macros)、 集成删除/新增/修改/刷新/锁定SQL语句、FetchRows,更让人称道的是引入了UpdateSQL组件。 TUniTable、TUniQuery和TUniStoredProc是用来检索和编辑数据的U

hrdzkj的专栏 1万+

Delphi多线程实现SQL连接检测不阻塞UI实战

在现代数据库应用程序开发中,响应性和并发处理能力是衡量系统质量的重要指标。Delphi作为一款功能强大的可视化开发工具,其内建的多线程支持为实现高效数据库操作提供了坚实基础。本章将从多线程的基本原理出发,介绍Delphi中线程处理的核心机制,并探讨为何在数据库连接检测中引入异步处理至关重要。通过对比传统同步访问方式在UI响应方面的不足,我们将引出使用多线程技术进行SQL连接检测的必要性及其初步实现思路,为后续章节的技术深入与代码实践奠定理论基础。为了实现数据库连接检测任务,通常需要继承。

weixin_34471637的博客 691

UniDAC使用教程(二):数据更新

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34202952的博客 1082

UNIDAC

用过ODAC,SDAC,MyDAC,IBDAC,PgDAC(分别支持Oracle、MSSQL、MYSQL、IB/FB、 PostgreSQL)等都知道,Corelab公司的数据集驱动非常不错,取数非常快,性能稳定。Corelab的DBX驱动也是做的非常不错。相 反,Borland的DBX除了IB驱动做的可以之外,其他的DBX驱动BUG不断,尤其是oracle的驱动。但ODAC,SDAC,I...

weixin_30471561的博客 388

FIREDAC数据引擎

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

weixin_30755709的博客 358

为什么要选择UniDAC

说到数据集组件,大家也许会首选ADO,然后说BDE太老了,DBX不敢用。其实delphi优秀的数据集组件真不少,除了上诉的数据集组件,还有ZEOSDB、SQL Direct、UniDAC等,要是专业的数据集组件,更是百花盛开,如FIBPLUS、SDAC、ODAC、DOA等等,商业和开源不尽其中!这里只讨论UniDACADO的一些比较。        Delphi能发展到现在,和一些著名的第

lzkIT的专栏 2486

FastReport VCL 6.9.12企业版全源码报表开发工具实战

FastReport 默认提供丰富的内置工具栏按钮,但企业应用常需根据角色权限隐藏部分功能。可通过遍历集合进行动态控制:vari: Integer;beginbegin// 隐藏“导出PDF”// 按权限启用打印end;end;end;同时,支持自定义快捷键绑定:快捷键命令常量功能描述Ctrl+ZcmdUndo撤销上一步操作Ctrl+YcmdRedo重做F9cmdPreview打开预览窗口Ctrl+P打印设置。

weixin_33597080的博客 1117

uniGUI中uniDAC使用事项

2.query的批量插入。

zheng的博客 679

强大的跨数据库访问组件 UniDAC使用教程:实现事务支持

Universal Data Access Components (UniDAC)是一款通用数据库访问组件,提供了多个数据库的直接访问,如针对Windows的Delphi,C++Builder, Lazarus (以及 Free Pascal), Mac OS X, iOS,Android,Linux和64和32位的FreeBSD等等。我们将长期的经验集于这个小组件,提供统一的数据库连接访问...

weixin_34226182的博客 639

DelphiFireDAC 数据库连接(总览)

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

sensor_WU 博客 1443

为什么要选择UniDAC

说到数据集组件,大家也许会首选ADO,然后说BDE太老了,DBX不敢用。其实delphi优秀的数据集组件真不少,除了上诉的数据集组件,还有ZEOSDB、SQL Direct、UniDAC等,要是专业的数据集组件,更是百花盛开,如FIBPLUS、SDAC、ODAC、DOA等等,商业和开源不尽其中!这里只讨论UniDACADO的一些比较。 Delphi能发展到现在,和一些著名的第三方控件厂商大力支持分不开,这其中包括Devart公司(Corelab)公司。Corelab公司做数据集驱动非常

赛志工作室 1757

通过简化数据集成提高生产力-UniDAC 10.3.0-Delphi

通用数据访问组件 (UniDAC) 是一个全面的数据库访问库,它为开发人员提供了使用各种数据库系统的统一接口。它支持各种数据库,包括 Oracle、SQL Server、MySQL、PostgreSQL 和 InterBase 等热门数据库UniDAC 通过提供一致的 API、减少对平台特定代码的需求以及增强跨不同数据库环境的代码可移植性来简化数据访问操作

控件与插件之大全 569

Unidac9.2.1源码版安装到Delphi11

在弹出的文件对话框中定位到目录C:\Users\Public\Documents\Embarcadero\Studio\22.0。运行完在Bin\Delphi28\Win32和Bin\Delphi28\Win64目录下分别生成了32位和64位的bpl文件。在C:\Program Files (x86)\Embarcadero\Studio\22.0\source。将源码中Lib\Delphi28下的Win32和Win64文件夹拷贝到上面建的Lib文件夹中。点击OK,点击Save, 大功告成!

weixin_43088031的博客 1094

强大的跨数据库访问组件 UniDAC使用教程:网络隧道

Universal Data Access Components (UniDAC)是一款通用数据库访问组件,提供了多个数据库的直接访问,如针对Windows的Delphi,C++Builder, Lazarus (以及 Free Pascal), Mac OS X, iOS,Android,Linux和64和32位的FreeBSD等等。我们将长期的经验集于这个小组件,提供统一的数据库连接访问(如o...

weixin_34326429的博客 501

DelphiFireDAC 数据库连接(定义连接)

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

sensor_WU 博客 2526

DelphiFireDAC 数据库连接(多线程)

如果满足以下条件,FireDAC是线程安全的。一个连接对象和所有与之相关的对象(如TFDQuery、TFDTransaction等)在每个时刻都由一个线程使用。FDManager在线程开始之前被激活,通过设置FDManager.Active为True。这意味着,在一个线程打开一个查询后,直到它的处理完成,应用程序不能在另一个线程中使用这个查询和连接对象。同样,在一个线程启动一个交易后,直到交易完成,应用程序不能在另一个线程中使用这个交易和连接对象。

sensor_WU 博客 2783

UniDAC 基础》 【菜头】 翻译 (之一)

UniDAC快速入门 菜头  译   · Ø  简介   Ø  译者概述  Ø  连接到数据库 Ø  查询数据 Ø  执行查询 Ø  修改数据 Ø  执行存储过程 Ø  建立主从关系 Ø  联合询 Ø    Ø  简介  通用数据组件(UniDAC)是一个强大的用于Delphi、C

菜头的专栏 3580
上一篇: SQL 输入助手,输入关键字背景着色-Delphi版
下一篇: PostgreSQL 语句块 begin end的用法
SQLDefine
博客等级 码龄2年 8粉丝 4原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值