【问题标题】:Database connectivity Delphi数据库连接 Delphi
【发布时间】:2010-02-18 04:08:08
【问题描述】:

我使用 delphi 多年,但从未用于数据库,但最近开始研究和测试。

我必须说,我印象深刻,大多数事情都是自动发生的,我习惯用 php 和 python 手写。

我要为朋友开发一个商业系统,(2 层)5 台用户计算机,1 台数据库服务器。

数据库服务器将是一台不错的机器,运行 (raid-1) 2 个硬盘驱动器(MySql5.1 或 Postgre 或 Firebird,欢迎提出建议)。

ADO

  • 易于使用
  • 易于部署(仅 mysqlconnector 安装程序)
  • 越慢?

DbExpress

  • 需要运送 4 个文件 [dbxconnections.ini, dbxdrivers.ini, mysqldll, driverdll]
  • 越复杂(越难使用)
  • ClientDataSet 增加了复杂性,但看起来确实很有用
  • 没有免费的 Postgre 驱动程序?

宙斯

  • 轻松部署 (1 dll)
  • 易于使用

如您所见,所需的功能是:

  • 易于使用
  • 易于部署

我无法在真实场景(客户端、服务器)中测试所有内容,所以希望有经验的各位能帮助我确定选择哪一个以及为什么。

编辑:谢谢大家,我想我会选择 ADO(可能)或 Zeos

提前致谢
亚瑟

【问题讨论】:

  • 在最新版本的 Delphi 中无需重新分发 dbxconnections.ini 和 dbxdrivers.ini。使用 dbexpress,您无需注册任何 dll,只需将其放在同一个文件夹中即可。

标签: database delphi ado dbexpress zeos


【解决方案1】:

@arthurprs,给你的场景

(2 层)5 台用户计算机,1 > 数据库服务器。

alt text http://www.techsolusa.com/images/firebird-logo-64.gifFirebird RDBMS 是一个非常不错的选择,因为它非常稳定、快速,可以在 Linux、Windows 和各种 Unix 平台上运行并满足您的要求。

alt text http://d.yimg.com/kq/groups/12858579/homepage/name/homepage.jpg 尊重连接组件我选择ZEOS

我在很多中小型项目中使用过这种组合,效果非常好。

【讨论】:

  • +1 感谢所有提到 ZEOS Lib 我没有听说过的人。我想知道为什么 delphi 2010 版本还没有发布(v7)?
  • Zeos 看起来又好又简单,而且它比 ADO 更快,我可能会决定在某个时候使用它。关于Firebird,我没用过,和其他数据库引擎对比如何?
  • @arthurprs:Firebird 是 Interbase 的开源衍生产品。查看网站firebirdsql.orgibphoenix.com 了解更多信息。我自己使用它来替代 Interbase、SQLServer、Access 和 MySQL 等产品。我已经使用了以上所有方法,但对于我自己和我的客户而言,我通常会先推荐 FB,然后再推荐其他人。
  • 如果您正在寻找商业组件,请使用 fibplus。
【解决方案2】:

我曾使用 ADO 开发过许多商业大容量系统,没有任何问题。部署相对简单,因为它包含在操作系统中。由于它拥有如此广泛的受众,因此大多数主要问题都已被识别和纠正。获得有关 ADO 连接的帮助非常容易。数据库支持非常深入 (connectionstrings.com),这使得支持其他数据库引擎几乎是微不足道的(您可能仍需要安装客户端驱动程序,但这对于几乎任何解决方案都是一样的)。

性能不是什么大问题,它实际上取决于数据库架构和引擎选择。

【讨论】:

  • 谢谢,对数据库引擎有什么建议吗?
  • 如果你打算跨平台,我会远离 ADO(当然,这是假设有一天 Delphi 本身也会跨平台)。
  • 我们不应该期望Delphi很快就会跨平台。
  • 对于引擎选择:SQL Server,SQL Server express 可以很好地扩展。 Access 也适用于较少的用户数,请记住,使用 Access 没有服务器部分,因此所有数据都会通过网络传输到导致表扫描的任何查询。
  • @arthurprs 跨平台德尔福正在做饭。使用 dbxpress,您现在可以使用 Wine 在 linux 中运行您的应用程序。
【解决方案3】:

我不得不说我对NexusDB 很满意,但客户端/服务器版本的成本可能不值得。

它适用于客户端/服务器或完全嵌入式,非常简单,您可以在应用中同时拥有并在它们之间切换,具体取决于您的客户需求

  • 嵌入式数据库是免费的,
  • 客户端/服务器“按开发者定价”是AU$ 500
  • 每次安装免费。

哦,是的,它是用德尔福写的;)

【讨论】:

  • 我几年前使用 NexusDB 和 kbmMW 编写的 ERP 系统一直在客户那里不间断地运行。 5 个并发本地用户和最多 50 个远程用户同时没有问题 - 我也推荐 NexusDB。
  • 不幸的是,我买不起任何付费组件,但它绝对看起来不错。
【解决方案4】:

我想说 Firebird 是 Delphi 领域最常用的数据库引擎(参见 here)。对于连接性,使用 Zeos(免费)或 DBX(如果你能负担得起 Architect 版本 - 唯一拥有 Firebird 驱动程序的版本)可能会更好。

关于 ADO:成熟的连接层,但它将(永远 - 很可能)与 Windows 绑定,而 Delphi 将跨平台。另外,是的,由于许多原因,它往往是较慢的,包括在某些情况下使用的 ODBC 驱动程序。但就你而言,当然,正如 skamradt 所说,我认为这并不重要。

【讨论】:

    【解决方案5】:

    虽然我读到有人不喜欢将两者混合的想法,但我使用 ADO 数据集作为“提供者层”获得了很好的结果,然后将数据馈送到 TClientDataSets - 所以没有理由不能使用 ClientDataSets 如果如果你发现你需要它们(它们很有用),你就走 ADO 路线。

    否则,我会附和这样的评论,即 ADO 是一种久经考验的、受信任的机制,它不会去任何地方。我总是发现它足够快。使用 UDL 文件进行配置非常简单。

    【讨论】:

      【解决方案6】:
      • dbGo (ADO) 更易于管理、更通用、更慢
      • dbExpress 速度更快,管理更复杂,支持的 DBMS 更少
      • ZeosDBO 易于管理,像 dbExp 一样通用,像 dbGo 一样慢,跨平台,几乎没有额外的组件,所有资源都可以访问

      很少有其他库可以解决上述所有疑问,尽管它们都是商业产品。但是我有偏见:)

      【讨论】:

        【解决方案7】:

        我们已经通过 Devart pg 组件使用 postgreSQL,在中型数据库应用程序中取得了巨大成功。 我们对这种组合进行了一些有限的基准测试,发现它的速度是使用 ADO 等的 2-3 倍。

        【讨论】:

          【解决方案8】:

          -- 数据访问组件

          我也赞成 TClientDataset 和 ADO 的结合。过去曾与它合作过,我可以说它是值得信赖的。 TClientDataset 的灵活性是一大收获。 DBExpress 也不错。 实际上,我将客户端数据集与几乎所有具有 TDataset 后代的数据访问层一起使用...

          -- 服务器

          火鸟。 OLEDB(我与 ODBC 一起使用)和 DBExpress(D2010+ 具有本地 DBX 驱动程序)免费且易于使用 - 不知道 ZEOS,但我相信它也可以连接到 FB。 可以很好地扩展到许多连接和大型数据库。 Firebird 上有 500Gb 的数据库,并且有很多用户报告。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-12-25
            • 2012-03-17
            相关资源
            最近更新 更多