【问题标题】:What Is The Best Database For Delphi Desktop Applications That Supports Stored Procedures?支持存储过程的 Delphi 桌面应用程序的最佳数据库是什么?
【发布时间】:2009-10-25 03:11:30
【问题描述】:

我从 Turbo Pascal 3 开始,去了 TP5,第二天买了 TP6,叫 Borland,降级到 TP5.5。买了 Delphi 3,现在有了 Delphi 5 Enterprise。大约 4 到 5 年前,我对编写代码失去了兴趣,原因有两个;

  1. 花一整天时间为别人编写 ASP 和 SQL。
  2. PC Techniques 杂志消失了。

我在共享软件市场上有一些程序表现不错,但需要认真更新。我喜欢 Delphi 或者当它是 Borland 时(在 Borland 购买 DBase 和所有其他废话之前),我想尽可能多地挽救我的 D5E 代码,但我怀疑我能做到。我计划升级到 Delphi 2010。

我的下一个软件版本需要与数据库交互。我非常精通 MS Sql,喜欢将所有数据库代码放在存储过程中。

什么是与 Delphi 交互良好、允许存储过程并且易于部署甚至 Geico gecko 都可以部署的最佳数据库选择?

美国东部标准时间 2009 年 10 月 25 日下午 18:53
阅读 Delphi 2010 的安装文档后重新打开


我下载了 Delphi 2010 的试用版并解压缩安装。我一直在阅读包中包含的安装文档。我从 zip 包中的 install.htm 开始。

install.htm 明智地告诉你看下面两篇文章:

  1. 安装说明:http://edn.embarcadero.com/article/39754
  2. 发行说明:http://edn.embarcadero.com/article/39758

发行说明声明如下...

MSSQL 驱动程序需要安装 SQL Native Client。 dbxmss.dll 需要 SQL Native Client 2008。 dbxmss9.dll 需要 SQL Native Client 2005

我检查了我的机器以查看是否安装了 SQL Native Client。没有。我没有读完文档,所以我记下了安装 SQL Native Client。

我搜索了 dbxmss.dlldbxmss9.dll 并在 Embarcadero 论坛上发现了一个非常有趣的主题。 read thread here.

在阅读了这个线程并仔细考虑之后,我认为我不会使用 Microsoft SQL Express。我不能指望我的客户安装了正确的驱动程序。所以,我又回来寻找不同的解决方案。

如果我要向大众销售 40 美元的产品,我需要一个防弹解决方案,不需要我的全新客户在我的软件运行之前更新他们的机器。

【问题讨论】:

  • 这是一个令人失望的线程,你链接到那里。我还没有享受过 D2010 的乐趣(?),但在 D2007 上这一切都非常简单且相当轻松。
  • @robsoft 是的,我知道。当我看到那个帖子时,我真的很沮丧。
  • ElevateDB 是最终的选择。它是用 Delphi 为 Delphi 和其他 IDE 编写的。很抱歉花了这么长时间才做出选择。

标签: database delphi stored-procedures easy-install


【解决方案1】:

Firebird 怎么样?它可以用作嵌入式数据库(xcopy 部署)。

其他选项包括DBISAMElevateDB

【讨论】:

  • 谢谢,我已经申请了 ElevateDB 的试用下载。它看起来很不错,我喜欢支持论坛得到回答的方式。我得告诉他们有关 StackOverflow.com 的事
  • 关于 ElevateSoft,我说的再好不过了。这是一家小公司,但十多年来他们一直只做 Delphi 数据库。最近有人联系我,要求从 1999 年升级 Delphi 3 应用程序,当我给 ElevateSoft 发电子邮件时,他们记得我是谁。
  • Larry,我想得越多,我就越倾向于 ElevateSoft。这是我的想法,他们使用 Delphi 来创建他们的产品。他们的产品很可能会完美地集成到 IDE 中。如果我有问题,他们会给我一个有意义的 Delphi 答案。所以我在想Delphi App + Delphi Component = Win Win。
  • @Cape Cod Gunny:不错的选择。使用 DBISAM 和现在的 ElevateDB,我很幸运。
  • 火鸟出局了。它不支持不使用触发器或函数的自动递增值。
【解决方案2】:

在为几家使用 VB6 和 MSSQL 的公司工作了大约 10 年之后,我已经使用 Firebird 开发了几年。从 MSSQL 到 Firebird 的转换几乎与从 VB6 到 Delphi 的转换一样容易。我使用个人版本的 IBExpert 进行数据库管理,我不得不说我从未见过任何可以在 SQL Server 世界中与 IBExpert 相提并论的东西。

除此之外,有好几次我能够使用用 Delphi 编写的 UDF 解决在 SQL 中缓慢、丑陋和笨拙的问题。

存储过程在 Firebird PSQL 中非常强大。我认为游标在 Firebird PSQL 中比在 MS SQL 中更自然。

我使用 DBExpress 与数据库进行交互。它和 Delphi 一样快速、轻巧且简单,就像 Firebird 一样。如果您的程序将包括报告,请查看 FastReports。就我的目的而言,它比 Crystal 更强大、更快捷,并且不需要为您的用户单独安装。

我不知道 Geico 穴居人,但我确信 Gecko 可以做到。

【讨论】:

  • 您开发的应用程序是供内部使用还是出售给公众的软件?
  • 两者兼而有之。我当了 25 年的会计师,对我能找到的用于支付工资的工具感到非常失望,我有自己的渴望。我写了自己的工资单。它超级快速且易于扩展。近两年来,我一直在为自己的几个客户使用工资单。在这一点上,我觉得我已经有了我的表演,我想把它带到路上。还有很多工作要做,但我希望我的程序和数据库的安装是最简单的部分。
【解决方案3】:

如果您已经精通 MS SQL,只需使用 MS SQL Server 2008 的 Express 版即可。我们已经将 2005 版用于多个商业项目,现在也开始使用 2008。非常非常好;得到很好的支持,并且有大量的帮助、文档和示例。 Stack Overflow 上有很多优秀的 SQL Server 专业知识!

正如其他人所说,另一种得到很好支持的方法是 Firebird/Interbase。 sproc 语言非常强大,特别是我喜欢您可以在 sproc 中使用“暂停”命令将当前播放状态作为结果记录集中的一行返回给调用者的方式,然后当调用者要求下一条记录,你的 sproc 恢复。这已被证明是过去调试复杂存储过程的非常有用的工具。 :-)

使用这些数据库中的任何一个,您都可以在内部使用您的应用程序或以商业方式发布它们。

【讨论】:

  • MS SQL Server Express 版不支持存储过程。
  • @cape cod gunny :确实如此! - 我面前有一个 2005 Express 数据库,有 212 个存储过程。
  • 太好了...谢谢。我花了 2 天 6 个小时阅读 Microsoft 网站上的规范。我比较了所有不同的版本,不敢相信 Express 忽略了存储过程。要么我忘记了如何阅读,要么 MS 更改了它的文档。 microsoft.com/sqlserver/2005/en/us/express-features.aspx
  • 没问题,很高兴为您提供帮助 - 正打算亲自向您发送他们比较页面的链接!
  • Express 是否允许使用临时表?
【解决方案4】:

关于 What databases do you use in your Delphi programs? 的最新帖子

火鸟是赢家

【讨论】:

  • 请更正答案中的链接。
【解决方案5】:

Firebird = 小型企业应用程序的最佳数据库。

【讨论】:

  • 如果你这么说我会相信你,但如果你能提供一些理由,你的答案会更有趣。
【解决方案6】:

看看 NexusDB,它已在您的应用程序中编译,因此无需部署其他任何东西。如果预算有限,您甚至可以使用 DCU 免费版。

【讨论】:

    【解决方案7】:

    MySql 怎么样?

    正在积极开发中,拥有庞大的用户群

    【讨论】:

    • MySQL 不是免费的,而且比软件的价格还贵。所以不适合这个问题。
    猜你喜欢
    • 2011-02-13
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多