105

考虑在 Microsoft 平台上开发轻量级桌面 DB 应用程序的需要。

使用 MS Access 可以很容易地完成它,但我希望能够将它分发给其他人,并且我不想为运行时许可证付费。

要求:

  • 易于分发给他人
  • 没有运行时许可问题

考虑因素和候选人:

问题:MS Access 的低成本或免费数据库替代品是什么?


另请参阅: 开源报告引擎



@Schnapple

Bruceatk 有点符合我的想法;与其说是数据库引擎,不如说是我想要 Access 为聚会带来的其他细节。漂亮的表单设计器,漂亮的报告引擎等。但是你确实提出了关于安装占用空间的一个很好的观点。我曾考虑过这一点,但无论如何我还没有做出任何坚定的决定。无论如何,它可能会是相当轻量级的东西,而且安装占用空间小肯定是一个加分项。


@雷穆,

不,我不知道 MS Access 2007 运行时是免费的。感谢您指出了这一点。上次我费心去调查它(我不记得是什么时候了)我认为它是一个相当昂贵的运行时许可证,因为我认为他们试图将它卖给企业 IT 部门。

并感谢其他所有回复的人;我完全不知道你们都指出的其他选择。

4

28 回答 28

127

当人们询问 Access 的替代品时,很多人只考虑数据库,但他们真正询问的是 Access 中的所有其他功能。他们通常不关心 Access 使用的是什么数据库。

Access 提供的一些功能包括:表单、查询构建、报表、宏、数据库管理,以及当您需要超越向导提供的功能时的某种语言。

SQLite、 MySQL 和 FireBird 是免费的数据库后端。它们没有内置的那些附加访问功能。Access 的任何免费替代品都需要您将SQLite 之类的东西与开发语言相结合。

最好的免费选项可能是SQLiteVisual Basic 2008 或 C# 2008 Express Edition。这将具有严重的运行时依赖性,因此在裸客户端上安装可能需要相当多的安装程序。

确实没有具有最低运行时要求的免费非 Access 选项。我希望有。

如果有人知道任何好的替代方案,我会很感兴趣。

于 2008-08-26T23:39:51.483 回答
69

您知道可以免费下载Access 2007 运行时吗?

较新版本的链接:

于 2008-08-26T22:02:20.643 回答
68

施纳普尔问道:

您是指与应用程序一起分发的免费数据库的概念,还是类似于 Access 的“单个文件,无需安装”数据库的概念?

呃,没有任何具有 Access 应用程序开发能力的人会分发单个 MDB/ACCDB 作为应用程序/数据存储。任何重要的 Access 应用程序都需要拆分为带有表单/查询/报告(即 UI 对象)的前端和后端(仅限数据表)。

很明显,这里需要的是一个数据库应用程序开发工具,比如 Access。仅数据库的答案都没有以任何方式对此做出响应。

在回答 Access 问题之前,请先了解 Access:

  • Access 是一种数据库应用程序开发工具,附带一个名为 Jet 的默认数据库引擎。

  • 但是,只要有 ISAM 或用于该数据库引擎的 ODBC 或 OLEDB 驱动程序,就可以构建 Access 应用程序以处理几乎任何后端数据库中的数据。

微软自己在混淆Access(开发工具)和Jet(数据库引擎)的区别方面做得很好,所以很多人没有认识到区别也就不足为奇了。但是开发人员应该使用精确的语言,当你说数据库引擎时,使用“Jet”,当你说前端开发平台时,使用“Access”。

于 2008-09-15T21:08:00.700 回答
63

这里要记住的一件事是 MS Access 产品不仅仅是原始数据库引擎。它提供了一个完整的应用程序开发平台,包括表单和菜单设计器、客户端应用程序语言和环境(VBA)以及报表设计器。当你把所有这些东西放在一起时,MS Access 真的没有对手。

但是对于这个问题的范围,我们关心的是原始数据库引擎。考虑到这一点:

SQLlite
Firebird
VistaDB(不是免费的)、
SQL Server Compact Edition(不是 Express)
和现在的 SQL Server LocalDB
都会浮现在脑海中。

另一个想法:虽然最初的问题确实询问了桌面数据库,但很可能有些人会在这里寻找与网站一起使用的数据库。重要的是要记住,这些都是进程内数据库,因此很少适合在 Web 上使用。如果您想建立一个网站,通常需要支持大量并发访问,您通常需要一个数据库服务器引擎,如 MS SQL、Postgresql、MySQL、Oracle 或它们的同类产品。同时,这些服务器引擎很少适用于单用户桌面应用程序。

于 2008-08-26T21:59:10.120 回答
17

老实说 - MS Access 没有任何免费的替代品。至少如果您指的是数据库开发工具(表单、报告、查询、VBA 支持等)。如果您将 MS Access 视为数据库引擎(实际上是指 MS Jet 或 ACE),那么是的 - 您有很多可能性。有很多免费的数据库引擎——最流行的是 MySQL 和 PostgreSQL。我可以推荐两者 - 这取决于你想做什么。

对于编写数据库前端,C++ 是最糟糕的选择之一。您应该考虑 MS Visual C#、MS Visual Basic .NET 或...甚至 Java/Swing(如果我们谈论的是桌面应用程序)。如果您考虑支持 Web 的前端 - 考虑 PHP(后端使用 MySQL 或 PostgreSQL)或 ASP.NET(后端使用 MSSQL Server)。

我强烈建议您不要将 C++ 用于此类工作。这种语言非常高效和灵活,但是使用 C++ 进行高级数据库前端开发并不是最好的主意。C++ 在系统编程、游戏开发、数学和物理模拟方面非常出色,在效率是关键的任何地方——比如实时应用程序等。前端不必是速度的守护进程——它们应该看起来不错并且有高级的最终用户功能(如排序、着色等)。如果您正在寻找免费工具 - 也许 C# Express 或 Visual Basic.NET Express 2008 是正确的选择?或者可能是 Java/Swing(检查 NetBeans IDE)?也许夏普发展?但不是 C++……让 C++ 去做最适合的事情。

于 2010-01-04T23:38:34.200 回答
15

看看suneido

几年前,我做了一个相当复杂的 GIS 应用程序作为实验(数据库、复杂的 gui、报告、客户端/服务器)。这是一次愉快的经历(除了一些文档问题......),我很快就变得富有成效。

我不再使用它主要是因为:

  • 这不是真正的通用目的
  • 它不是跨平台的(仅限 Windows)
  • 我决定停止探索异国技术,专注于更主流的东西。
于 2008-09-15T21:26:27.690 回答
10

在自由软件替代品中,这些尚未被提及:

我还会关注 Flex/Air 社区提出的 DB RAD 工具,因为使用这些工具可以获得统一的桌面和 Web 界面。

于 2008-10-18T12:21:56.797 回答
9

Oracle XE 与 Application Express。

  • 有一个不错的基于网络的 gui,
  • 是一个“真实”的数据库
  • 将扩展到单个桌面之外
  • 提供超越小团队的清晰规模路径
  • 基于 Web 的应用程序,易于访问。
  • 可以将 Excel 电子表格转换为应用程序
于 2008-09-21T01:10:35.370 回答
7

问题是要找到一个 MS Access 的替代方案,它包括一个可视化、拖放式开发环境和一个“合理的”数据库,可以免费部署整个套件和 caboodle。

我的第一个建议是查看这个非常完整的 MS Access 替代品列表(其中许多是免费的),然后查看 osalt.com 上的开源数据库开发工具列表。

我的第二个建议是查看 WaveMaker,它是一种用于云的开源 PowerBuilder(免责声明:我在那里工作,因此不应被视为公正的信息来源 ;-)

WaveMaker 将拖放式 IDE 与开源 Java 后端相结合。它在 Apache 许可下获得许可,并拥有 15,000 名强大的开发人员社区。

于 2010-04-21T18:44:48.483 回答
7

NuBuilder ( www.nubuilder.net ) 可能是对的。

NuBuilder 是一个 GPLv3 许可的 PHP Web 应用程序,需要 MySQL 作为后端数据库。用户和程序员都使用网络界面。

他们将其宣传为免费的、基于 Web 的 MS Access 替代方案。这些天我正在创建我的第二个 NuBuilder 应用程序。NuBuilder 似乎开发得非常积极,我发现它稳定且文档齐全(前提是您可以观看视频教程。)

于 2012-10-23T11:06:59.777 回答
6

您可能想查看 SQLite ( http://sqlite.org/ )。一切都取决于您的使用情况。例如并发并不是它最大的优点。但例如 Firefox 使用它来存储设置等。

于 2008-08-26T21:59:46.280 回答
6

在编程论坛的上下文中,我们通常不会认为程序员也需要数据库的应用程序部分。通常程序员希望业务逻辑和前端使用自己的开发环境,只使用数据库的存储、查询、检索和数据处理能力。

如果您真的想要所有其他东西,那么您正在谈论一个更大、更复杂的运行时环境。你不会再找到任何“轻量级”的东西了。甚至 MS Access 本身也不再符合条件,因为它的重量并不轻。幸运的是,很多用户可能已经拥有它,这使它看起来很轻。

这并不意味着您将找不到任何东西。只是它不太可能具有与 Access 相同的成熟度或分布水平,尤其是因为底层访问引擎已经融入 Windows。

于 2008-08-27T13:30:43.297 回答
6

Access 运行时许可证从未如此昂贵——据我记事起,开发人员工具/扩展的成本大约为 300 美元(这可以追溯到 Access 2 Developers Toolkit,或 ADT),但是使您能够将应用程序与运行时一起分发给无限数量的用户。只要您的运行时应用程序被三个或更多用户使用,您就可以省钱(假设安装完整的 Access 副本的成本为 100 美元/用户)。

Access 2007 的运行时是完全免费的,但实际上,在那之前的成本并没有那么高。

Marc Gravell 补充说(在我看来,这应该是一个评论):
不过,免费肯定是对人们尝试的一种鼓励,而 300 美元的价格确实会让人气馁。

于 2008-09-16T17:53:48.613 回答
5

VistaDB 有一个可免费使用的 express 版本,它的语法和驱动程序与 SQL Server 兼容。VistaDB 是单个文件,只需要它们的驱动程序 .dll 即可在您的 asp.net 或 winforms 项目中工作。

由于它与语法和数据源兼容,因此您可以根据需要升级到 SQL Server。

从他们的网站:

VistaDB 是一个完全托管且类型安全的 ASP.NET 和 WinForms 应用程序,使用 C#、VB.NET 和其他符合 CLR 的语言。

VistaDB.net

于 2008-09-05T18:26:00.360 回答
5

你提到Python,你考虑过Dabo吗?

http://dabodev.com/

这将避免自定义应用程序中的大部分繁重工作。

于 2009-07-24T11:44:02.967 回答
4

您是指与应用程序一起分发的免费数据库的概念,还是类似于 Access 的“单个文件,无需安装”数据库的概念?

例如,SQL Server Express Edition 之类的东西需要安装运行时、创建和安装数据库、人们无法识别的开始菜单上的条目(我妻子问为什么 SQL Server 前几天在她的笔记本电脑上)而 Access 数据库可以在单个文件中运行。

我想我要问的是您是否想将数据库视为您写入的文档或其他人机器上的某个实例?

于 2008-09-05T18:30:46.323 回答
4

r:Base 呢?早在那天 r:Base 是一个非常强大的 DOS(然后是 Windows)RDMBS,这是访问前/悖论前的日子。它最接近的竞争对手是 dBase,但当时这并不完全相关。我开发了一些非常好的 r:Base 应用程序,并且像今天的 Access 一样,有一个内置的报告生成器、表单工具、查询和表格操作。令我惊讶的是,它还活着! http://www.rbase.com/ 它似乎提供了所有访问权限。可能是你需要考虑的事情。

于 2008-09-21T01:06:16.237 回答
4

Kexi 2007.1.1 可能就是您要找的。

它的快速版本是免费的,但数据库大小有限。完整版售价 72 美元。

来自其主页的描述: Kexi 是一个易于使用的应用程序,用于 Linux 和 MS Windows 的可视化数据库设计。Kexi 与 MS Access、FoxPro、Oracle Forms 和 FileMaker 竞争。

详情请访问http://www.kexi-project.org/about.html

于 2008-10-13T09:33:09.573 回答
3

Apache Derby 是一个不错的数据库替代品。

于 2008-10-18T12:59:38.780 回答
3

甘巴斯

于 2009-07-11T15:20:49.453 回答
3

与 Aurelio 的回答非常一致,我现在在 Ruby on Rails 中处理一些我以前可能在 MS Access 中完成的应用程序。Rails 应用程序的后端数据库。通常是 MySql(运行良好,可在大多数共享 Web 主机上使用)或 PostgreSQL(可能时更好的选择)。

于 2011-02-15T08:52:15.747 回答
2

微软的 Visual Studio Express 怎么样? http://www.microsoft.com/express/default.aspx SQL Server Express 也在那个链接上......

于 2008-08-26T22:02:26.680 回答
2

我会遇到你同样的问题。我有一个 MS 访问应用程序,但我想访问一个所有人都可以访问的 Web 应用程序,而无需向 MS 付费。所以我决定使用 MySql 和 Wavemaker(开源)来获取范围。我对这个决定感到非常高兴。这就是结果http://www.mara-database.org/

于 2010-10-01T08:17:51.007 回答
2

还请查看http://www.sagekey.com/installation_access.aspx以获取适用于 Ms Access 的出色安装脚本。此外,如果您需要将图像集成到您的应用程序中,请查看 ammara.com 上的 DBPix

于 2011-01-05T17:40:55.330 回答
2

您似乎正在寻找的不仅仅是一个数据库程序,而是一个包含表单、报告等的数据库(基本上是一种 IDE)。我建议尝试使用办公套件附带的 OpenOffice.org Base。它是免费和开源的。它远没有访问权限那么完美,但它做的事情几乎相同。

另外,如果你知道访问,它至少会有点熟悉。

http://www.openoffice.org/

编辑:抱歉,没有看到您正在考虑使用 OpenOffice.org。关于稳定性,当我玩它时,我让它崩溃并做了一些“奇怪”的事情,但 Access 做了同样的事情。找出答案的最好方法是玩一下它,看看它是否适合你。

于 2011-12-04T01:57:49.697 回答
1

我认为 OpenOffice.org 包含的数据库中包含表单设计器。不过,我从未尝试过为它编写代码。我看到的一个论坛帖子有一个教程链接,他们说里面有一些代码。

我开始为我的妻子建立一个数据库,据我所知,界面非常好。

oooForum.org 教程

于 2008-09-05T19:36:33.357 回答
0

对于 sqlite,请查看 firefox 扩展。它提供了一个可维护的 GUI。

于 2008-08-26T22:51:03.443 回答
-1

如果您要在共享主机上运行您的网站(几乎所有这些都不允许您在完全信任模式下运行您的网站),并且如果您需要简单的启用 x-copy 部署的网站,VistaDB 是唯一的选择。

于 2009-03-25T18:39:37.437 回答