1

目前,我正在为一家小型租赁公司(3 个地点)开发基于 C# 的程序。现在,他们使用 MS Access 97(基于 Jet SQL)作为数据库,我希望对其进行升级。不过我还是想把Access作为Front-end,因为开发完我就走了,而且本地人员知道怎么用Access(有些改动需要直接在数据库中编辑)。

我怀疑两种选择:

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

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

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

提前致谢。

4

2 回答 2

1

As @granadaCoder points out, the security, performance, reliability of using SQLExpress is far better than Jet and ACE and is just as easy to connect/link to your Access 97 front-end. Microsoft provides a free migration tool that is very powerful and easy to use.

Converting an MS-Access 97 application to 2013 may present some real challenges as Cwell. onverting from Access 97 to 2013 is a two step process. You must first convert it to 2002-2003 and then to 2007/2013. You will also need to purchase licenses for all users and the back-end database.

In addition, if your 97 application references external objects, they may not work with later versions of Access.

As @granadaCoder also suggests, a good medium to long term plan would be to convert the front-end to .NET.

于 2014-08-01T14:07:10.653 回答
0

Microsoft Jet 只是一个位于网络驱动器上的文件。因此,当您进行查询时……Jet-Runtime(在本地 PC 上)必须通过网络带来大量数据(整个表)。因此,它是残酷的。

Sql Server(Express 或其他)....在主机上作为服务运行。当执行查询时,它会在服务器上进行处理并返回“较小的信息桶”。

(您提到了解文件共享与客户端服务器之间的区别)。

如果你不能放弃你的访问(程序)前端......那么做链接表到 Sql-Server 将是你最好的选择,恕我直言。好吧,我说的是性能。

安全性,您对不同的用户和密码有更多选择。并且您可以分割允许哪些登录名/db-users 执行哪些操作。

IIRC,Jet 数据库允许一个密码。又名,全有或全无。

https://www.connectionstrings.com/ace-oledb-12-0/with-database-password/

仅此一项就可以让我选择 SqlExpress。

..

早期的重大设计决定是使用 Microsoft-Access-Forms。你正在为这个早期决定付出代价。

即使人们使用 Jet-Database,我也只会将其用于基本数据存储。并在其上放置一个 Layer .Net 应用程序。然后换出到不同的数据存储并不那么激烈。

祝你好运伙计。

于 2014-08-01T13:45:27.970 回答