考虑在Microsoft平台上开发轻量级桌面数据库应用程序的需求。
可以使用MS Access轻松完成,但我希望能够将其分发给其他人,我不想为运行时许可证付费。
要求:
考虑因素和候选人:
问题:MS Access的低成本或免费数据库替代方案是什么?
另请参阅: Open Source Reporting Engines
@Schnapple
布鲁塞特克对我的想法有点打击;它并不是数据库引擎,因为我想要Access为聚会带来的其他细节。漂亮的表单设计器,漂亮的报表引擎等。但是你确实提出了一个关于安装足迹的非常好的观点。我曾经考虑过这个问题,但我还没有做出任何明确的决定,无论如何我都会采用这种方式。无论如何它可能都是相当轻量级的东西,而且小的安装空间绝对是一个优势。@Remou,
不,我不知道MS Access 2007运行时是免费的;感谢您指出了这一点。我最后一次打扰调查它(我不记得它是什么时候)我觉得这是一个相当昂贵的运行时许可证,因为我认为他们试图将它卖给公司IT部门。
感谢所有回应的人;我完全没有意识到你们所指出的那些其他选择。
答案 0 :(得分:126)
当人们询问Access的替代品时,他们中的很多人只考虑数据库,但他们真正询问的是Access中的所有其他功能。他们通常不关心数据库Access正在使用什么。
Access提供的一些功能包括:表单,查询构建,报表,宏,数据库管理以及某种语言,当您需要超越向导提供的内容时。
SQLite,MySQL和FireBird是免费的数据库后端。它们没有内置的附加Access功能。 Access的任何免费替代方案都需要您将SQLite和开发语言结合起来。
最好的免费选项可能是SQLite和Visual Basic 2008 or C# 2008 Express Edition。这将具有沉重的运行时依赖性,因此在裸客户端上安装可能需要相当多的安装程序。
实际上没有一个免费的非Access选项,具有最低的运行时要求。我希望有。
如果有人知道任何好的选择,我会有兴趣听听。
答案 1 :(得分:68)
答案 2 :(得分:65)
Schnapple问:
你指的是a的概念吗? 免费数据库与分发 应用程序,或类似Access的“单一 文件,没有安装“数据库?
呃,任何对Access应用程序开发都没有能力的人都会将单个MDB / ACCDB作为应用程序/数据存储进行分发。任何非平凡的Access应用程序都需要使用表单/查询/报告(即UI对象)和后端(仅限数据表)拆分为前端。
很明显,这里需要的是像Access这样的数据库应用程序开发工具。所有仅限数据库的答案都不会以任何方式响应。
在回答访问问题之前,请先了解Access:
Access是一个数据库应用程序 随附的开发工具 默认数据库引擎名为Jet。
但Access应用程序可以 几乎可以用来处理数据 任何后端数据库,只要 有一个ISAM,或ODBC或OLEDB 该数据库引擎的驱动程序。
微软本身已经很好地模糊了Access(开发工具)和Jet(数据库引擎)之间的区别,所以很多人都不认识到这种区别并不奇怪。但是开发人员应该使用精确的语言,当你的意思是数据库引擎时,使用“Jet”,当你的意思是前端开发平台时,使用“Access”。
答案 3 :(得分:59)
SQLlite,
Firebird,
VistaDB(不是免费的),
和SQL Server Compact Edition(不是快递)
一切都浮现在脑海中。
另一个想法:虽然最初的问题确实询问了桌面数据库,但很可能有些人会在这里找到一个用于网站的数据库。重要的是要记住,这些都是进程中数据库,因此很少适合在Web上使用。如果你想构建一个网站,你真的需要一个数据库服务器引擎,如MS SQL,Postgresql,MySQL,Oracle或他们的兄弟。与此同时,这些服务器引擎很少适用于单用户桌面应用程序。
答案 4 :(得分:16)
说实话 - 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)?也许SharpDevelop?但不是C ++ ......将C ++留给最适合的东西。
答案 5 :(得分:14)
查看suneido。
几年前,我做了一个相当复杂的GIS应用程序作为它的实验(数据库,复杂的gui,报告,客户端/服务器)。这是一次愉快的经历(除了一些文档问题......)而且我用它很快就变得富有成效。
我不再使用它主要是因为:
答案 6 :(得分:9)
在自由软件替代品中,尚未提及这些:
我还会关注Flex / Air社区正在推出的DB RAD工具,因为使用这些工具可以获得统一的桌面和Web界面。
答案 7 :(得分:8)
使用Application Express的Oracle XE。
答案 8 :(得分:6)
NuBuilder(www.nubuilder.net)可能是对的。
NuBuilder是一个获得GPLv3许可的PHP Web应用程序,需要MySQL作为后端数据库。用户和程序员都使用Web界面。
他们将其推广为基于网络的免费MS Access替代方案。 这些天我正在创建我的第二个NuBuilder应用程序。 NuBuilder似乎非常积极地开发,我发现它很稳定并且有很好的文档记录(前提是你可以参加视频教程。)
答案 9 :(得分:6)
问题是找到MS Access的替代方案,其中包括一个带有“合理”数据库的可视化,拖放式开发环境,可以免费部署整个套件和caboodle。
我的第一个建议是查看这个very complete list of MS Access alternatives(其中许多都是免费的),接下来是osalt.com上的这个开源数据库开发工具列表。
我的第二个建议是查看WaveMaker,它是一种开源的PowerBuilder for the Cloud(免责声明:我在那里工作所以不应该被认为是一个公正的信息来源;-)
WaveMaker将拖放式IDE与开源Java后端相结合。它是根据Apache许可证授权的,拥有一个15,000个强大的开发人员社区。 p>
答案 10 :(得分:6)
您可能希望查看SQLite(http://sqlite.org/)。一切都取决于你的用法。例如,并发不是它最大的优点。但是,例如Firefox使用它来存储设置等。
答案 11 :(得分:5)
在编程论坛的上下文中,我们通常不会想到程序员也需要数据库的应用程序部分。通常,程序员希望将自己的开发环境用于业务逻辑和前端,并且只使用数据库的存储,查询,检索和数据处理功能。
如果你真的想要所有其他的东西,那么你所说的是一个更大更复杂的运行时环境。你不会再找到任何“轻量级”的东西了。甚至MS Access本身也不再符合资格,因为它的重量很轻。很幸运的是,很多用户可能已经拥有它,使显示重量轻。
这并不意味着你找不到任何东西。只是因为它不太可能具有与Access相同的成熟度或分布水平,特别是因为底层访问引擎已经融入Windows。
答案 12 :(得分:4)
Access运行时许可证从未如此昂贵 - 只要我记得,开发人员工具/扩展程序的成本大约为300美元(这可以追溯到Access 2开发人员工具包或ADT) ,但这使您能够将运行时的应用程序分发给无限数量的用户。只要您的运行时应用程序被三个或更多用户使用,您就可以节省资金(假设安装完整的Access副本需要100美元/用户)。
Access 2007的运行时是完全免费的,但实际上,之前的成本并不是那么好。
Marc Gravell补充说(在我看来应该是评论):
然而,获得自由肯定是一种鼓励人们尝试的,300美元的价格真的会让人气馁。
答案 13 :(得分:4)
答案 14 :(得分:4)
VistaDB有一个可以免费使用的快速版本,并且与SQL Server的语法和驱动程序兼容。 VistaDB是一个单独的文件,只需要他们的驱动程序.dll在你的asp.net或winforms项目中工作。
由于语法和数据源兼容,您可以根据需要升级到SQL Server。
来自他们的网站:
VistaDB是一个完全托管和 typesafe ASP.NET和WinForms 使用C#,VB.NET和 其他符合CLR的语言。
答案 15 :(得分:3)
您是指使用应用程序分发的免费数据库的概念,还是类似Access的“单个文件,无安装”数据库?
就像在SQL Server Express Edition之类的东西需要安装运行时,创建和安装数据库,人们的开始菜单上的条目,他们将无法识别(我的妻子问为什么SQL Server在她的笔记本电脑上其他日子)而Access数据库可以在一个文件中运行。
我想我要问的是你想把数据库看成是你写的文件还是其他人机器上的某个实例?
答案 16 :(得分:3)
Kexi 2007.1.1 可能正是您所寻找的。 p>
它的快递版本是免费的,但DB大小有限。完整版售价72美元。
主页的说明: Kexi是一款易于使用的Linux和MS Windows可视化数据库设计应用程序。 Kexi与MS Access,FoxPro,Oracle Forms和FileMaker竞争。
答案 17 :(得分:3)
r:Base怎么样?回到当天r:Base是一个非常强大的DOS(然后是Windows)RDMBS,这是Pre-Access / pre-Paradox天。它最接近的竞争对手是dBase,但当时并不是完全相关的。我开发了一些非常好的r:Base应用程序AND,就像今天的Access一样,有一个内置的报告生成器,表单设备,查询和表操作。令我惊讶的是,它还活着! http://www.rbase.com/它似乎拥有所有访问权限。可能需要你考虑。
答案 18 :(得分:2)
Apache Derby是一个很好的数据库替代方案。
答案 19 :(得分:2)
答案 20 :(得分:2)
微软的Visual Studio Express怎么样? http://www.microsoft.com/express/default.aspx SQL Server Express也在那个链接......
答案 21 :(得分:2)
另请查看http://www.sagekey.com/installation_access.aspx以获取Ms Access的优秀安装脚本。此外,如果您需要将图像集成到您的应用程序中,请访问ammara.com上的DBPix
答案 22 :(得分:2)
与Aurelio的答案很相似,我现在在Ruby on Rails上使用一些我以前在MS Access中完成的应用程序。 Rails应用程序的后端数据库。通常是,MySql(运行良好,可在大多数共享Web主机上使用)或PostgreSQL(在可能的情况下是更好的选择)。
答案 23 :(得分:2)
您看起来不仅仅是一个数据库程序,而是一个包含表单,报表等的数据库(基本上是各种IDE)。我建议尝试OpenOffice.org Base,它随办公室套件一起提供。它是免费和开源的。它远不如访问那么精致,但它几乎完全相同。
另外,如果你知道访问权限,那至少会有点熟悉。
编辑:对不起,没看到您正在考虑OpenOffice.org。关于稳定性,当我玩它时,我已经崩溃并做了一些“奇怪”的事情,但是Access做了同样的事情。找出答案的最好方法是稍微玩一下,看看它是否适合你。答案 24 :(得分:1)
我和你有同样的问题。我有一个MS访问应用程序,但我想去一个每个人都可以访问的Web应用程序,而无需向MS支付费用。所以我决定使用MySql和Wavemaker(开源)来获得范围。我对这个决定感到非常高兴。这就是结果http://www.mara-database.org/
答案 25 :(得分:1)
我认为OpenOffice.org附带的数据库中有表单设计器。我从来没有尝试过编写代码。我看到一个论坛帖子有一个指向他们说有一些代码的教程的链接。
我开始为我的妻子建立一个数据库,据我所知,界面非常好。
答案 26 :(得分:0)
对于sqlite,请查看firefox扩展。它提供了可维护的GUI。
答案 27 :(得分:-1)
如果您要在共享主机上运行您的网站(几乎所有这些都不允许您在完全信任模式下运行您的网站)以及您需要启用简单的x-copy部署网站,VistaDB是唯一的选择。< / p>