哪个本地数据库适合我的情况?
我将构建一组应用程序。 其中一个应用程序是无人值守应用程序(用 VB6 编写),它将将从各种来源接收的数据写入本地数据库。 所有其他应用程序(将在 VS 2008/c# 3.0 中编写)将读取此数据,主要是出于报告原因。
我不想要 SQL Server/MySql/Sybase 甚至它的 Express 版本,因为分发它是一个问题(例如需要单独安装等...)。 我正在寻找一个本地数据库,它具有 VB6(所以可能是 OLEDB,或者 ODBC,如果我必须满足的话)和 ADO.NET 的驱动程序。 如果数据库支持 ORM(例如 NHibernate)或至少一对一的映射器(例如 Subsonic),那就太好了,但这并不是一个大问题。 但我的主要要求是数据库应该非常可靠,这样我就不必浪费时间摆弄它、恢复丢失的数据等……
我以前有使用 MS Access 的经验,但我不知道。有太多美好的回忆(也不算坏)。 我听说过 SQLite、SQL Server Compact Edition、VistaDB 等...但对它们的经验为零,而且我不知道有谁真正使用过它们。
有什么最适合我的情况?
I will be building a set of applications. One of these apps is unattended application (written in VB6) which will write data it receives from various sources to a local database. All the other applications (will be written in VS 2008/c# 3.0) will read this data for mostly reporting reasons.
I don't want SQL Server/MySql/Sybase or even its express editions, because distributing it is a problem (e.g. requires separate install, etc...). I am looking for a local database that has drivers for both VB6 (so probably OLEDB, or ODBC if I have to settle for it) and ADO.NET. It would also be nice, if the database had support for ORMs, like NHibernate or at least 1-to-1 mappers, like Subsonic, but that's not a deal breaker. But my main requirement is that the database should be massively solid, so that I don't have to waste time fiddling with it, recovering lost data, etc...
I have experience with MS Access from back in the day and don't have too many good recollections (nor was it bad either). I've heard of SQLite, SQL Server Compact Edition, VistaDB, etc... but have zero experience with them and I don't know anyone who has actually used it.
What's out there that best fits my situation?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
SQLite 可能正好符合要求。 确保您还检查所有可用的包装器。
SQLite might just fit the bill. Make sure you check out all the available wrappers as well.
您是否想过FireBird SQL ?
Have you thought of FireBird SQL?
我推荐 SQLite,除非数据库。 我有使用它的经验,而且我和你的情况一样。 System.Data.Sqlite 项目非常好,它们支持 ADO.net 2.0 和所有这些奇特的东西。 他们目前正在努力在包装器上获得完整的 Linq 支持。 我推荐它的原因如下。
在此处检查 System.Data.Sqlite 项目 http://sqlite.phxsoftware.com/
I'd recommend SQLite unless the database. I have experience using it and I was in the same shoes you were. The System.Data.Sqlite project is really nice and they support ADO.net 2.0 and all that fanciness. They are currently working on getting full Linq support on the wrapper as well. I recommend it for the following reasons.
Check the System.Data.Sqlite project here http://sqlite.phxsoftware.com/
查看优势数据库服务器。 它具有静默安装选项、占地面积非常小且易于维护。 它有很多客户端支持:ODBC、OLE DB、.net 数据提供程序、jdbc、dbi、php 等。免版税本地引擎(只是与应用程序一起在进程中运行的 dll)、廉价的客户端/服务器、SQL和直接导航表访问。
DevZone
Check out Advantage Database Server. It has a silent install option, has a very small footprint and is easy to maintain. It has a lot of client support: ODBC, OLE DB, .net data provider, jdbc, dbi, php, etc. Royalty free local engine (just a dll that runs in-process with your application), inexpensive client/server, SQL and direct navigational table access.
The DevZone
SQL Server Compact Edition 位于进程内,因此有无需单独安装。
SQL Server Compact Edition is in-proc, so there is nothing separate to install.
我对 SQLite 也没有太多经验,但我使用过它一点。 它用于很多情况和应用程序。 确实有数百个小型数据库,但我至少推荐 SQLite 作为起点。
I don't have a lot of experience with SQLite either but I have used it a little. It is used in a LOT of situations and applications. There really are 100s of little DBs out there but I'd recommend SQLite as a starting point at least.
我可以为 VistaDB 做担保。 您可能想查看的另一个数据库是 Blackfish
I can vouch for VistaDB. Another database you might want to look at is Blackfish
SQLite 的影响非常小并且写得非常好。 它非常适合本地客户端数据库
SQLite is very low impact and VERY well written. It is perfect for a local client database
正如其他人提到的那样,SQLite 与 SQLite.net ADO.net 提供程序一起使用,可轻松通过 .NET 访问它。
SQLite as others have mentioned with the SQLite.net ADO.net provider, for easy .NET access to it.
我已经使用了 ScimoreDB,并为我的应用程序编写了 log4net 的附加程序。 结果好坏参半,并花费了大量时间尝试阅读文档以使事情按需要工作。
我正在转向 SqlLite,并且有一个关于在 SqlLite 中使用 SubSonic 的链接。
I have used ScimoreDB, and wrote my appender for log4net, for my application. Have had mixed results and spent a lot of time trying to get through the documentation to get things to work as per needs.
I am moving towards SqlLite and there was a link floating around about using SubSonic with SqlLite.
可以使用 SQL Server 作为直接连接到数据库文件的本地数据库。 但这需要你安装了sql server express。
查看带有成员资格提供程序的 ASP.Net 的默认设置。 它将为网站创建一个基于本地文件的数据库。
使用这种方法可能没问题,因为您可以在开发时使用所有熟悉的工具。
编辑:
我刚刚注意到嵌入的标签。 如果您想在 Windows CE 设备上运行该应用程序,您可以选择 SQL服务器紧凑型。 它不支持存储过程 AFAIK,但它支持 SQL Server 的大多数其他功能。
It is possible to use SQL Server as a local database connecting directly to a database file. But this requires that you have sql server express installed.
Look at the default setup of ASP.Net with a Membership Provider. It will create a local file based database for the website.
Using this approach you might be ok since you can use all your familiar tools when developing.
EDIT:
I just noticed the embedded tag. If you want to run the app on Windows CE devices you could opt for SQL Server Compact. It doesn't support stored procedures AFAIK but it does support most other features of SQL Server.