Microsoft SQL Server Express与ACE

时间:2014-08-01 13:33:11

标签: sql-server ms-access jet-sql

目前,我正在为一家小型租赁公司(3个地点)开发基于C#的程序。现在,他们使用MS Access 97(基于Jet SQL)作为数据库,我希望升级它。但是,我确实希望将Access保留为前端,因为我将在开发之后离开,并且本地人员知道如何使用Access(某些更改需要在数据库中直接编辑)。

我怀疑两种选择:

  • 升级到Access 2013,因此使用MS ACE作为数据库引擎
  • 使用带有Access的SQL Server Express作为前端,因此使用MS SQL Server作为数据库引擎

系统将有一个共享数据库,每个位置一个。他们正在使用共享驱动器(它们适用于MS Server 2008)。他们的数据库非常小(<1 GB组合),所以我不需要额外的性能,例如MySQL提供。我知道ACE和SQL Server在设计方面的区别(文件共享与客户端/服务器),但我仍然不知道什么更适合这种情况。

在查看性能,可靠性,安全性和与应用程序的连接时,有什么更好的选择?

提前致谢。

2 个答案:

答案 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应用程序。然后换到不同的数据存储并不是很激烈。

祝你好运。