考虑在Microsoft平台上开发轻量级桌面数据库应用程序的需求.
使用MS Access可以相当容易地完成它,但我希望能够将其分发给其他人,我不想为运行时许可证付费.
要求:
易于分发给他人
没有运行时许可问题
考虑因素和候选人:
基于OpenOffice套件.我担心的是它的稳定性.
MySQL +用C++或Python编写自定义数据库代码,或者看起来像是一个相当苛刻的解决方案.
问题:MS Access的低成本或免费数据库替代方案是什么?
另请参阅: 开源报告引擎
@Schnapple
Bruceatk对我的想法有点打击; 它并不是数据库引擎,因为我想要Access为聚会带来的其他细节.漂亮的表单设计器,漂亮的报表引擎等.但是你确实提出了一个关于安装足迹的非常好的观点.我曾经考虑过这个问题,但我还没有做出任何明确的决定,无论如何我都会采用这种方式.它可能是相当轻量级的东西,而且小的安装空间肯定会是一个加分.
@Remou,
不,我不知道MS Access 2007运行时是免费的; 感谢您指出了这一点.我最后一次打扰调查它(我不记得它是什么时候)我觉得这是一个相当昂贵的运行时许可证,因为我认为他们试图将它卖给公司IT部门.
并感谢所有回应的人; 我完全没有意识到你们所指出的那些其他选择.
当人们询问Access的替代品时,他们中的很多人只考虑数据库,但他们真正询问的是Access中的所有其他功能.他们通常不关心数据库Access正在使用什么.
Access提供的一些功能包括:表单,查询构建,报表,宏,数据库管理以及某种语言,当您需要超出向导提供的范围时.
SQLite,MySQL和FireBird是免费的数据库后端.它们没有内置的附加Access功能.Access的任何免费替代方案都需要您组合SQLite和开发语言之类的东西.
可能最好的免费选项是SQLite和Visual Basic 2008或C#2008 Express Edition.这将具有繁重的运行时依赖性,因此在裸客户端上安装可能需要相当多的安装程序.
确实没有免费的非Access选项,具有最低的运行时要求.我希望有.
如果有人知道任何好的选择,我会有兴趣听到.
您是否知道可以免费下载Access 2007运行时?
更新版本的链接:
2010年运行时
2013运行时
2016年运行时
Schnapple问道:
您是指使用应用程序分发的免费数据库的概念,还是类似Access的"单个文件,无安装"数据库?
呃,没有任何能够使用Access应用程序开发的人会将单个MDB/ACCDB作为应用程序/数据存储进行分发.任何非平凡的Access应用程序都需要使用表单/查询/报告(即UI对象)和后端(仅限数据表)拆分为前端.
很明显,这里需要的是像Access这样的数据库应用程序开发工具.所有仅限数据库的答案都不会以任何方式响应.
在回答访问问题之前,请先了解Access:
Access是一个数据库应用程序开发工具,它附带一个名为Jet的默认数据库引擎.
但是,只要有一个ISAM,或者用于该数据库引擎的ODBC或OLEDB驱动程序,就可以构建Access应用程序来处理几乎所有后端数据库中的数据.
微软本身已经很好地模糊了Access(开发工具)和Jet(数据库引擎)之间的差异,所以很多人都不认识到这种差异并不奇怪.但是开发人员应该使用精确的语言,当你的意思是数据库引擎时,使用"Jet",当你的意思是前端开发平台时,使用"Access".
所有人都会想到SQLlite,
Firebird,
VistaDB(非免费)
和SQL Server Compact Edition(不是Express)
.
另一个想法是:虽然最初的问题确实询问了桌面数据库,但很可能有些人会在这里找到一个用于网站的数据库.重要的是要记住,这些都是进程内数据库,因此很少适合在Web上使用.如果你想构建一个网站,你真的需要一个数据库服务器引擎,如MS SQL,Postgresql,MySQL,Oracle或他们的兄弟.同时,这些服务器引擎很少适用于单用户桌面应用程序.
说实话 - 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++留给最适合的东西.
看看suneido.
几年前我做了一个相当复杂的GIS应用程序作为它的实验(数据库,复杂的gui,报告,客户端/服务器).这是一次愉快的经历(除了一些文档问题......)而且我用它很快就变得富有成效.
我不再使用它主要是因为:
这不是真正的通用目的
它不是跨平台(仅限Windows)
我决定停止探索异国情调的技术,专注于更主流的东西.
在自由软件替代品中,尚未提及这些:
键
Rekall(目前还不确定Windows版本的状态)
Glom(正在开发的 Windows版本)
我还会关注Flex/Air社区正在推出的DB RAD工具,因为使用这些工具可以获得统一的桌面和Web界面.
Oracle XE与Application Express.
有一个很好的网络gui,
是一个"真正的"数据库
将扩展到单个桌面之外
提供超越小团队的清晰规模路径
应用程序基于Web,易于访问.
可以将Excel电子表格转换为应用程序
您可能需要查看SQLite(http://sqlite.org/).一切都取决于你的用法.例如,并发不是它最大的优点.但是例如Firefox使用它来存储设置等.
问题是找到MS Access的替代方案,其中包括具有"合理"数据库的可视化拖放开发环境,其中可以免费部署整个套件和caboodle.
我的第一个建议是查看这个非常完整的MS Access备选列表(其中许多是免费的),接下来是osalt.com上的这个开源数据库开发工具列表.
我的第二个建议是检查WaveMaker,它是一种开源的PowerBuilder for the Cloud(免责声明:我在那里工作所以不应该被认为是一个公正的信息来源;-)
WaveMaker将拖放式IDE与开源Java后端相结合.它根据Apache许可证授权,拥有15,000个强大的开发人员社区.
NuBuilder(www.nubuilder.net)可能是对的.
NuBuilder是一个GPLv3许可的PHP Web应用程序,需要MySQL作为后端数据库.用户和程序员都使用Web界面.
他们将其推广为免费的基于Web的MS Access替代方案.这些天我正在创建我的第二个NuBuilder应用程序.NuBuilder似乎非常积极地开发,我发现它很稳定并且有很好的文档记录(前提是你可以参加视频教程.)
在编程论坛的上下文中,我们通常不会想到程序员也需要数据库的应用程序部分.通常,程序员希望将自己的开发环境用于业务逻辑和前端,并且只使用数据库的存储,查询,检索和数据处理功能.
如果你真的想要所有其他的东西,那么你所说的是一个更大更复杂的运行时环境.你不会再找到任何"轻量级"的东西了.甚至MS Access本身也不再符合资格,因为它的重量很轻.很幸运的是,很多用户可能已经拥有它,使它看起来很轻.
这并不意味着你找不到任何东西.只是因为它不太可能具有与Access相同的成熟度或分布水平,特别是因为底层访问引擎已经融入Windows.