简体   繁体   English

直接与MS SQL Server 2005一起使用的MS Access 97应用程序

[英]MS Access 97 application working directly with MS SQL Server 2005

Please, give me the most serious arguments against this. 请给我最严肃的论点。 Application directly opens a connection to ms sql server, directly executes queries. 应用程序直接打开与ms sql服务器的连接,直接执行查询。 So what I'd like to ask: 所以我想问的是:

1) Why it is wrong when the number of users can be up to 1000 executing huge queries? 1)当执行庞大查询的用户数最多可以达到1000时,为什么会出错?

2) What serious problems can that cause? 2)那会导致什么严重的问题?

3) What should I do?:) 3)我该怎么办?

Arguments, the most serious arguments against this kind of implementation! 争论,反对这种实现的最严肃的争论!

What about: 关于什么:

  • The version of access 97 is totally outdated and wont get any updates, has a crappy look, crappy functionality and in general - IF it requires rework - should be updated. 访问97的版本完全过时了,不会得到任何更新,外观糟糕,功能糟糕,通常-如果需要返工,则应该进行更新。
  • Problems? 问题? You run on a 10 year old out of support platform. 您的支持平台已使用10年。 What problem can that cause? 那会导致什么问题? Well - what about limited support? 好吧-有限的支持呢?
  • Upgrade at least to 2007, better 2010 (coming in a couple of weeks) when you have a momnent time. 如果有需要,请至少升级到2007年,再升级到2010年(好几个星期)。 I personally dispise access based applications (crappy architecture to start with etc.), but if there is one, the update to access 2010 is possible the most painless way to go. 我亲自介绍基于访问的应用程序(以糟糕的体系结构开头等),但是如果有一个应用程序,则更新Access 2010可能是最轻松的方法。

One of the things to consider is how the queries are done. 要考虑的事情之一是查询如何完成。 1000 queries against a SQL Server DB might be manageable, but 1000 Access queries in which the table is locked, or which are actually joins or views, could use dramatically more memory. 针对SQL Server DB的1000个查询可能是可管理的,但是锁定表或实际上是联接或视图的1000个Access查询可能会使用更多的内存。 It really depends on how the application is written. 这实际上取决于应用程序的编写方式。 Some Access apps open a recordset and page through the records one at a time, or fetch a few dozen and work on those, but sometimes Access grabs the whole recordset, for example to allow users to page through data. 一些Access应用程序一次打开一个记录集并一次翻阅记录,或者一次获取几十个并进行处理,但是有时Access会抓取整个记录集,例如允许用户翻阅数据。 And I have seen Access lock a set of tables to allow editing of them. 而且我已经看到Access锁定了一组表以允许对其进行编辑。 That would be bad in your scenario. 在您的情况下那将是不好的。

Of course, I wholeheartedly agree with the "10 years out of support" issue. 当然,我全心全意地同意“十年不予支持”的问题。 That is a guaranteed problem. 这是一个有保证的问题。 Mine is only a possibility. 我的只是一种可能性。 And you should probably update SQL Server to a current version also, for the same reason. 出于相同的原因,您可能还应该将SQL Server更新到当前版本。

Access 2003 or 2007 would be just fine for the scenario as long as you had an Access developer who was up to speed on how to develop for client/server with large user populations. 只要您有一个Access开发人员,他可以加快如何为具有大量用户的客户端/服务器进行开发的速度,Access 2003或2007就适合该方案。

Access 97 is still an awfully nice version of Access. Access 97仍然是Access的绝佳版本。 I think it's the best version ever produced. 我认为这是有史以来最好的版本。

But it is out of support and predates the alteration of default permissions in Windows implemented with the release of Windows 2000. This means that it has some problems in installing with its default permissions (it expects write access to its application folders and registry keys). 但这是不受支持的,并且早于Windows 2000发行版中实现的Windows默认权限的更改。这意味着它在使用默认权限进行安装时会遇到一些问题(它期望对应用程序文件夹和注册表项具有写权限)。 An installation script can easily alter these appropriately, but you're still left with problems in certain contexts, like trying to run it in Windows Terminal Server/Citrix, where it very often just completely breaks. 安装脚本可以轻松地适当地更改这些脚本,但是在某些情况下您仍然会遇到问题,例如尝试在Windows Terminal Server / Citrix中运行它,但通常情况下它完全崩溃了。

I would like to hear an explanation of exactly why someone would choose A97 for new development. 我想听听为什么有人会选择A97进行开发的确切解释。 Of course, I may be misinterpreting. 当然,我可能会误解。 You may be asking about an existing app, in which case I'd go with "if it ain't broke, don't fix it," and then ask exactly what it is that is perceived as "broken." 您可能会问有关现有应用程序的问题,在这种情况下,我会选择“如果它没有损坏,请不要修复它”,然后确切地询问被认为是“损坏”的应用程序。 Those things can be fixed, though it's unlikely that simply upgrading from A97 to something more recent is going to do the job. 这些问题可以解决,尽管仅从A97升级到最新版本不太可能完成这项工作。

I'm currently nearly finished with a brand new application written in access 97 that stores its data in SQL server 2008. As has been said many times before the access/SQL server combination really works great. 我目前几乎已经完成了一个用Access 97编写的全新应用程序的开发,该应用程序将其数据存储在SQL Server 2008中。正如之前多次提到的那样,访问/ SQL Server组合确实非常有用。

Inline with my other applications it is completely unbound using ADO to get the data from the server. 与我的其他应用程序内联时,使用ADO从服务器获取数据是完全不受约束的。 I wont drag up that debate again here but it is something you really want to look into as it can offer some great benefits. 我不会在这里再次引发辩论,但是您确实要研究它,因为它可以带来很多好处。

Most of the SQL server guide you will find will ask you to check that you have the correct indexes and try to identify the slowest running parts of the system or the ones that get called a lot and then look at making them faster. 您将找到的大多数SQL Server指南都将要求您检查索引是否正确,并尝试确定系统中运行最慢的部分或被调用频繁的部分,然后着眼于使其更快。 That might cause you to make a covering index or to denormalise the data in someway. 这可能会导致您制作覆盖索引或以某种方式对数据进行非规范化。

Generally what is good practice for JET also works well for SQL server, make a good table schema with a good clustered index choice and good supporting indexes and you are 95% of the way there 通常,对JET的良好实践对SQL Server也很有效,使用良好的聚集索引选择和良好的支持索引创建良好的表架构,您已经达到了95%

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM