我们不需要多用户。只是关系。我们的应用目前使用 Access,但 Access 并不完全是零管理,因为它容易损坏。
SQLite 是坚如磐石、坚如磐石、纯零管理的吗?
或者...有没有办法将 SQL Server 配置为桌面引擎,使其成为纯零管理员?
或者......还有其他一些关系选择吗?
我们使用 ADO 作为与 Access 对话的层,因此切换到 SQL Server 并不难,但我的理解是我无法将 ADO 用于 SQLite,因此切换到 SQLite 需要大量重写。是对的吗?
我们不需要多用户。只是关系。我们的应用目前使用 Access,但 Access 并不完全是零管理,因为它容易损坏。
SQLite 是坚如磐石、坚如磐石、纯零管理的吗?
或者...有没有办法将 SQL Server 配置为桌面引擎,使其成为纯零管理员?
或者......还有其他一些关系选择吗?
我们使用 ADO 作为与 Access 对话的层,因此切换到 SQL Server 并不难,但我的理解是我无法将 ADO 用于 SQLite,因此切换到 SQLite 需要大量重写。是对的吗?
其他数据库可能比 Access 更稳定,但我不知道有什么比 Access 更容易使用,而且最终用户也很容易理解。Access(如 SourceSafe)总是被称为“容易腐败”,但很少有第一手资料。大多数人“在某处读过它”。
如果您担心损坏,请考虑在您的应用程序中包含一个备份例程,以保留 Access 数据库的最后两个或三个副本。
如果您坚持其他内容,请尝试 SQL Server Compact Edition(正如其他人所建议的那样),它(如 Access)只是一个文件,在这种情况下是一个 .sdf 文件和一些 DLL。与 SQL Server Express Edition 不同,SQL Server CE 不会让后台进程一直运行。
另一种选择是嵌入式 Firebird。
最简单的转换是使用 SQL Server 精简版,它可以嵌入到您的应用程序中,并且根据我所做的一些轻量级测试,它工作得非常好。
转到 SQL lite 将需要对 DAL 进行更多修改。
现在请注意,SQL Compact Edition 不支持存储过程!(应该没什么大不了,但一定要研究差异)
SQLite有ADO.NET 包装器,不确定这是您想要的还是直接的 ADO。我发现 SQLite 非常健壮,尽管您确实需要不时对数据库进行 VACUUM 以在删除后恢复未使用的空间。你可以从你的代码中做到这一点,所以这不是真正的管理。我只是在启动或关闭时执行此操作。
我同意其他人对 SQL Express Edition 的看法。我将它用于多个应用程序。
如果您正在使用 .NET,那么您可能希望查看Subsonic以进行数据访问。它支持以上所有以及更多功能,并且使切换变得相当轻松。对于单用户数据库应用程序,这很棒。如果您要进行重写,那么这是值得的。
由于您正在考虑不需要多用户,因此您可能需要查看 SQL Server Compact Edition。http://www.microsoft.com/Sqlserver/2005/en/us/compact.aspx