2025年9月25日: PostgreSQL 18 发布!

隆重推出 PostgresDAC v3.0.0

发布于 2015-03-04,作者 Microolap

我们发布了 PostgresDAC 组件套件的新主要版本。这历程始于近两年前,虽然目标远大,并非所有都已达成。然而,总的来说,我们可以毫不犹豫地自豪地说,这个版本是一个重要的里程碑。

转储和恢复功能

TPSQLDump 和 TPSQLRestore 组件是一对独一无二的产品,在整个市场上无与伦比。不仅在 Delphi 或 C++Builder 世界里,即使在任何其他 IDE 或工具链中,也不存在类似的功能。因此,我们的首要目标是保持这些类的最新。我们付出了巨大的努力,一年前,全新的 v3 TPSQLDump 和 TPSQLRestore 组件已作为 v2.11.0 版本的一部分发布。

TPSQLDump 和 TPSQLRestore 与原生的 pg_dump 和 pg_restore 工具完全兼容。每一个原生功能都开箱即用

  • 输出格式(二进制、文本、目录、gzip 压缩),
  • 并行转储和恢复,
  • 对存档项进行全面的选择、过滤和重新排序,
  • SQL-92 特定输出选项等。

异步按需获取模式

TPSQLQuery 的默认模式适用于在普通同步应用程序中提交命令和获取结果集。然而,存在一些潜在的缺点,这些缺点可能对开发人员很重要

  • TPSQLQuery.Open 等待命令完成。应用程序可能还有其他工作要做(例如维护用户界面),在这种情况下,在等待响应时阻塞并不是一个好的选择。
  • 由于在等待结果时客户端应用程序的执行会被挂起,因此应用程序很难决定要取消正在进行的命令。
  • 默认模式下的 TPSQLQuery 始终收集命令的整个结果,并将其缓存在一个地方。虽然这种行为简化了一些内部逻辑,但对于包含许多行的结果来说,这可能不实用。

为了避免这些限制,开发人员现在可以使用全新的按需获取模式,该模式通过 TPSQLQuery.Options 集合中的 dsoFetchOnDemand 选项启用。当然,也存在一些限制

  • 要利用按需获取模式的优势,应该使用只读的 TPSQLQuery 对象。此限制可能会随着时间被移除。
  • 每个只读的 TPSQLQuery 组件都必须有一个单独的 TPSQLDatabase 组件,因为按需获取命令流将阻塞连接,直到获取到结果集的最后一行。

支持内置范围和几何字段类型

以前,这些特定类型被映射到 TStringField 类。现在,PostgresDAC 为此提供了新的 TField 后代

  • TPSQLRangeField
  • TPSQLPointField
  • TPSQLCircleField
  • TPSQLBoxField
  • TPSQLLSegField

如果需要,所有这些都会自动创建,或者可以在设计时手动添加。

TPSQLRangeField 封装了所有内置的 PostgreSQL 范围类型:int4range, int8range, numrange, tsrange, tstzrangedaterange。范围值的信息存储在 TPSQLRange 记录中,通过存储每个边界的 TPSQLRangeBound 记录的值。根据底层表字段类型,开发人员可以通过适当的方法 AsInteger、AsFloat 等来访问边界值。

增强型手册

我们已经完成了新的帮助系统。它已从头开始重写。支持的格式如下:

  • chm,
  • pdf。
  • epub(进行中)。

完整变更日志

  • [!] 为只读 TPSQLQuery 对象引入了按需获取模式
  • [!] 添加了对几何类型的支持
  • [!] 添加了 TPSQLRangeField
  • [!] 停止支持 8.0 版本之前的 PostgreSQL 服务器
  • [!] 添加了 v9.4.0 客户端库
  • [!] 添加了 v9.4.0 转储和恢复库 (pg_dump.dll, pg_restore.dll)
  • [*] 组件 TPSQLUser 和 TBDE2PSQLDAC 被标记为已弃用,并将很快被移除
  • [*] 如果 TPSQLDatabase 用于 TPSQLQuery 和 dsoFetchOnDemand 的非独占模式,则会引发 EPSQLDatabaseError
  • [*] TPSQLDatabase.CancelBackend 现在会检查连接以防止 AV
  • [-] 修复了“如果 SQL 参数名称由不正确的字符链组成,可能会发生 AV”的错误
  • [-] 修复了“TPSQLDirectQuery.Open 中出现错误后 EPSQLDatabaseError 的详细错误属性为空”的错误

下载

欢迎立即在此处下载 PostgresDAC v3.0.0:http://microolap.com/products/connectivity/postgresdac/download/ 或登录我们网站上的您的私人区域 http://microolap.com/my/downloads/

反馈

请随时通过我们的支持工单系统提出任何问题或报告 bug,地址为: http://www.microolap.com/support/