我的应用程序目前使用 Microsoft Access,但现在可能托管在 Linux 机器上。此外,当从多台计算机访问时,其中一台计算机可能会更新记录(当其他用户读取该记录时)。

我还要求嵌入式数据库应该支持复杂的 SQL 查询 - 例如内部 SQL、联接等。

我试过 SQLite, ,但是许多现有查询失败,或者需要修复(例如在使用内连接的简单查询中,FROM 后面的括号对于 SQLite 来说是不可接受的,必须删除)。也不支持右连接。

我开始了解 阿帕奇德比氢2, ,但首先希望您提出宝贵意见。

编辑:

我忘了提及我的应用程序完全是用 Java 编写的。

编辑:

默认情况下,我使用 Microsoft Access mdb,在网络驱动器上共享,从远程计算机建立无 DSN 的连接。

更新

我用 Firebird 进行了试验,它看起来确实非常好,零管理,并且兼容 SQL。它速度很快,而且我在尝试使用它进行的任何典型查询中都没有遇到任何问题。我对它非常满意,并希望将其用于我提出这个问题的项目。

希望 Advantage Server 也很好,但没有时间审查它。在审查/使用 Firebird 后,我觉得没有必要尝试其他任何东西。

有帮助吗?

解决方案

我想这是 火鸟.

甚至 科特氏 Firebird 2.1 支持!

Firebird 可在 Windows、Linux、Mac OS 上运行...

松鸦鸟 Java 驱动程序。

有一些很好的从 Access 到 Firebird 的迁移工具:

其他提示

我会看一下Advantage Database Server(sybase.com)。它可以在Windows,Linux和 NetWare 上运行。我们为建筑行业提供商业会计/项目管理应用程序,并在6或7年前转向Advantage。我们对性能和支持非常满意。客户也很开心。

您可以在此处找到有关Derby SQL标准合规性的详细说明: http:// wiki .apache.org / DB-德比/ SQLvsDerbyFeatures

我们公司也在使用Advantage。我们来自 XBase 背景,但后来又接受了它的SQL性质。它运行在很多平台上(Windows,Linux,NetWare),并且有许多驱动程序(PHP,ADO,JDBC,ODBC,Crystal),因此几乎可以在任何可以编程的环境中运行。

这可能对您的研究有所帮助:关系数据库管理系统的比较

我个人建议认真看看Firebird。它是跨平台的,具有原生的 .NET提供商并支持你提到的联接。

Firebird 是“最适合SQL的”。嵌入数据库。嵌入式版本的引擎与服务器版本相同。

请注意,使用Firebird一次只能嵌入一个客户端可以连接到数据库,因此您可以跨越同一进程的多个连接但不能连接不同的进程。此问题已在Firebird 2.5及更高版本中修复。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top