目前,我正在为一家小型租赁公司(3个地点)开发基于C#的程序。现在,他们使用MS Access 97(基于Jet SQL)作为数据库,我希望升级它。但是,我确实希望将Access保留为前端,因为我将在开发之后离开,并且本地人员知道如何使用Access(某些更改需要在数据库中直接编辑)。
我怀疑两种选择:
系统将有一个共享数据库,每个位置一个。他们正在使用共享驱动器(它们适用于MS Server 2008)。他们的数据库非常小(<1 GB组合),所以我不需要额外的性能,例如MySQL提供。我知道ACE和SQL Server在设计方面的区别(文件共享与客户端/服务器),但我仍然不知道什么更适合这种情况。
在查看性能,可靠性,安全性和与应用程序的连接时,有什么更好的选择?
提前致谢。
答案 0 :(得分:1)
正如@granadaCoder所指出的,使用SQLExpress的安全性,性能和可靠性远远优于Jet和ACE,并且连接/链接到Access 97前端也很容易。 Microsoft提供了一个非常强大且易于使用的免费migration tool。
将MS-Access 97应用程序转换为2013可能会带来一些真正的挑战,如Cwell。从Access 97 to 2013转变是一个两步过程。您必须先将其转换为2002-2003,然后再转换为2007/2013。您还需要为所有用户和后端数据库购买许可证。
此外,如果您的97应用程序引用外部对象,它们可能无法与更高版本的Access一起使用。
正如@granadaCoder所说,一个好的中长期计划是将前端转换为.NET。
答案 1 :(得分:0)
Microsoft Jet只是一个位于网络驱动器上的文件。 因此,当您进行查询时...... Jet-Runtime(在本地PC上)必须在网络上传输大量数据(整个表)。 因此它是残酷的。
Sql Server(Express或其他)....在主机上作为服务运行。当执行查询时,它会在服务器上进行处理并返回更小的信息桶&#34;。
(你提到了解文件共享与客户端服务器之间的区别)。
如果你不能放弃你的Access(程序)前端...那么做Sql-Server的链接表将是你最好的选择,恕我直言。 好吧,我是在谈论表演。
安全性,您可以为不同的用户和密码提供更多选项。并且您可以切断允许哪些logins / db-users执行操作。
IIRC,Jet数据库允许一个密码。阿卡,全有或全无。https://www.connectionstrings.com/ace-oledb-12-0/with-database-password/
仅此一项就可以让我使用SqlExpress。
...
早期的重大设计决定是使用Microsoft-Access-Forms。你为这个早期的决定付出了代价。
即使人们使用Jet-Database,我也只会将其用于基本数据存储。并在其上放置一个Layer .Net应用程序。然后换到不同的数据存储并不是很激烈。
祝你好运。