15

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

我还要求嵌入式数据库应该支持复杂的 SQL 查询——比如内部 SQL、Join 等。

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

我开始了解Apache DerbyH2,但首先希望得到您的宝贵意见。

编辑:

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

编辑:

在预设中,我使用 Microsoft Access mdb,在网络驱动器上共享,从远程计算机建立无 DSN 连接。

更新

我用 Firebird 进行了试验,它确实看起来非常好,零管理员,并且符合 SQL。它很快,而且我可以尝试的任何典型查询都没有问题。我对它非常满意,并希望将它用于我提出这个问题的项目。

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

4

6 回答 6

13

我认为是火鸟

Firebird 2.1甚至支持Cte

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

适用于 Java 的Jaybird驱动程序。

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

于 2009-09-17T15:02:50.910 回答
6

我会看看 Advantage Database Server (sybase.com)。它在 Windows、Linux 和NetWare上运行。我们有一个用于建筑行业的商业会计/项目管理应用程序,并在 6 或 7 年前切换到 Advantage。我们对性能和支持感到非常满意。客户也很高兴。

于 2009-09-22T03:14:11.797 回答
2

您可以在此处找到关于 Derby 的 SQL 标准合规性的相当详细的描述:http ://wiki.apache.org/db-derby/SQLvsDerbyFeatures

于 2009-10-21T04:05:24.433 回答
1

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

我个人建议认真看看 Firebird。它是跨平台的,具有本地.NET 提供程序并支持您提到的连接。

于 2009-09-17T13:25:36.287 回答
1

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

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

于 2009-09-19T14:35:50.843 回答
1

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

于 2009-09-24T17:38:30.897 回答