Windows的简单数据库应用程序
我需要为Windows构建一个简单的单用户数据库应用程序。主要要求是独立于Windows版本和已安装的软件。我们会推荐哪些技术(语言/框架)?我对语言的偏爱是Visual Basic。
编辑:VB.Net和SQL Server Compact Edition呢?
解决方案
我会推荐Sqlite。它是完全独立的,公共领域的,因此根本没有许可证问题。
SQLite可能就是我们想要的。 http://www.sqlite.org/
单用户还是多用户?
对于单用户,答案将是SQLite
对于多用户(或者多线程),请尝试MySQL或者PostgreSQL。
取决于我们对应用程序的需求。
我们可以使用SQLLite,它是一个非常好的数据库,不需要安装。
我们也可以使用Microsoft SQL Server:SQL Server Compact 3.5.
两者都是免费的!
好吧,假设我们没有任何经验。
我们需要某种持久性存储(例如数据库)和客户端。
对于存储,我们几乎可以使用任何东西。例如,我们可以在MS Access中创建数据库,然后将其作为文件发送,并使用ADO对其进行访问。
其他选项包括MS SQL Express版本(已预先安装在某些计算机上,或者可以免费安装)和大量开源数据库(例如SQLite)
对于客户端,使用VBScript和ADO(使用OLE DB驱动程序)不会出错。自从《黑暗时代》以来,它们随Windows一起安装。我们将在网上获得大量参考资料/教程/答案。
缺点:没有用户界面可言,因此我们必须构建一个命令行界面(用于"简单"应用程序)。
如果要构建UI,建议使用.NET WinForms。开销将大大增加,但是.NET现在已安装在所有XP / Vista计算机上,即使不是这样,我们也可以始终在应用程序中安装框架。
从帖子中还不清楚我们是否需要Web应用程序。
对于Web应用程序,MySQL可在Windows平台上有效地工作。我们还为开发环境提供了几乎无限的选择,包括PHP,Ruby on Rails,Django和.Net。
如果我们正在查看桌面应用程序,则MS Access可能是合适的...对于简单的应用程序来说,这非常容易。
SQLite将适用于本地桌面应用程序。如果我们想要多个用户,几千兆字节的数据和多个连接,则可以使用mysql或者Firebird。
http://www.mysql.com/
http://www.firebirdsql.org/
如果要构建可以轻松移动到其他PC的应用程序,我更喜欢Microsoft Access,它是易于使用且无需安装的小型数据库。它适合于诸如Addressbook,mini crud system之类的应用程序。
但是,如果要开发企业数据库系统,则应改用MySQL。
我不明白我们所说的"独立表格已安装的软件"的含义。daccess-ods.un.org daccess-ods.un.org我们至少需要安装DBMS以及一个客户端或者用户界面。
我建议使用MS Access。对于简单的单用户任务和快速的原型开发,它既简单又便宜。只需购买开发版本("普通"访问权限)即可创建数据库。可以从Microsoft主页免费下载Access 2007的运行时版本,以仅使用我们创建的数据库。
它还在同一工具中结合了DBMS和GUI前端。
因为要求是基于Windows的应用程序,所以我建议我们使用sql server 2005 Express Edition,它是一个免费工具,但有一些小限制。使用付费版本时,我们可以升级到更大的版本。
还有其他数据库引擎,例如SQL Lite或者FireBird,如果它们提供的支持和增长选项对我们足够好,请选择它们
此外,Visual Basic是永无止境的。 VB.NET可能是当前更好的基于Windows的平台。它将为我们提供一个更好的平台/功能,并且当我们想扩展自己在该项目上的才能时,我认为.NET人才可能比想使用无用语言的程序员更容易使用。
我敢说MS Access ...吗?
最好的选择是使用Delphi创建Win32本机应用程序,并使用SQLLite作为数据库。
原因是Delphi可以在不安装任何其他产品的情况下生成本机win32应用程序。
如前所述,SQLite是一个很棒的单用户数据库。此页面包含VB / SQLite示例。曾经担心的是SQLite解析外键约束,但不强制执行它们。我们可以使用此代码为SQLite生成"外键触发器",从而获得具有FK约束的易于使用的数据库。
但是,根据数据库需求的要求,我们可能需要考虑MS Access。
我使用了SQL Server Compact Edition。就像sqllite。使用ADO.NET访问的单个SDF文件。
我们可以使用Visual Basic .NET开发应用程序,并使用Visual Studio管理数据库(添加表,列,约束等)。
如果我们正在寻找占用空间小(最多几MB)且易于部署(最终用户应仅安装应用程序以使其正常运行),那么我们可以选择嵌入SQLite和Firebird。
在这两个中,我会随时选择Firebird,因为它完全支持SQL(例如,我们不能在SQLite中删除一列),ACID遵从性以及无需更改即可进入客户端/服务器的能力(仅如果我们决定让多个用户在同一个数据库上工作,请将连接字符串从嵌入式连接到服务器)更改为代码。
更不用说我们可以使用完整的服务器进行开发(这意味着应用程序和数据库管理工具可以同时连接到数据库)。
FireBird SQL Server将成为首选。它可以像传统数据库一样在嵌入式和多用户模式下使用。它实现了许多SQL标准,并具有强大的社区基础。它适用于Windows,Linux,Solaris,OS X,HP-UX
我已成功使用Turbo Delphi(免费,商业用途和非商业用途)+ ZeosLib(zeos.firmos.at)。
我们需要与.exe一起分发的唯一东西是数据库客户端dll(无需安装客户端,只需将dll放在同一目录中即可)。
克西会工作吗?
.NET中快速嵌入式数据库有哪些选项的重复项?
我将从那里重复我的答案:
"或者在Windows的每个副本中都存在内置数据库Esent。请在此处阅读:http://ayende.com/Blog/archive/2008/12/23/hidden-windows-gems-extensible-storage- engine.aspx"和http://www.codeplex.com/ManagedEsent