微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ms-access – 在多用户环境中编程Microsoft Access后端数据库的正确方法

由于数据库被破坏的趋势,有一种流行的观点认为Access是一个不可靠的后端数据库,用于并发使用,特别是对于20多个并发用户.

一个少数意见认为Access数据库后端非常稳定和高效,前提是:

>您的网络没有问题,并且
>您正确编写程序.

我的问题非常具体:“正确编写程序”是什么意思?为了防止数据库被破坏,您必须遵循哪些要求?

编辑:要清楚:数据库已经拆分.假设少于25个用户.我对性能考虑不感兴趣,只对数据库稳定性感兴趣.

如果您正在寻找需要避免的编程实践的很好的示例,列表中的第一个通常是不运行拆分数据库.第二个不是将前端放在每台计算机上.

例如,上面的海报有各种各样的问题,但你可以下注,他们的失败是他们没有分割数据,或者他们没有将软件(前端)放在每台计算机上.

至于那个不得不求助于一些奇怪的锁定机制的人,这有点奇怪而且不是必需的. Access(实际上是JET数据引擎,现在称为ACE)自Office 2000发布以来就内置了行锁定功能.

我已经在商业上部署应用程序书面访问了大约12年了.在那些年里,我有一个客户腐败.

请记住,在Microsoft开始推销和销售sql服务器之前,他们为大约50个用户评估了JET数据库引擎.虽然我的客户没有遇到问题,但在有人使用探测器的10个案例中,有9个案例表明他们未能拆分数据库,或者他们没有在每台计算机上安装前端.

至于编码技巧或提示?您构建的任何程序设计都可以将减少数量的记录加载到表单中,这是您设计的一个良好开端.换句话说,你永远不想简单地抛出附加到大表的表单而不限制要加载到表单中的记录.这可能是我在这里可以给出的头号提示.

例如,将每个人的帐号加载到即时柜员机是没有意义的,然后询问用户要使用的帐号.事实上,我问过一位80岁的祖母,如果这个想法有意义的话,甚至她都能解决这个问题.要求用户使用哪个帐户,然后只需加载一个客户就更有意义了.

上述相同的概念适用于网络上的拆分数据库.如果您向用户询问客户帐号,然后将表单打开到带有where子句的一条记录,那么即使后端有100,000条记录,表单加载时间也会接近即时,因为只有一条记录将是从客户表中拖出网络线.

还要记住,市场上有很多商业应用程序,例如使用喷射后端的简单会计(你实际上可以简单地打开具有MS访问权限的会计文件,他们重命名扩展来隐藏这个事实,但它是访问mdb文件).

我的一些客户有3-5个使用耳机的用户,他们整天都在运行我的预订软件.许多人已经预订了超过40,000名客户,并且在10年期间,他们中的任何人都没有进行过调查. (上面的一个腐败示例实际上是在单个用户系统上信不信由你).

因此,由于我的访问产品的可靠性,我从未接到过一次服务电话.另一方面,这个应用程序只有160个表单,大约30,000行代码.它有大约65个高度相关和统一的表(强制执行关系,还有级联删除).

因此,对于多用户应用程序,此处不需要特定的编程方法,例外是可以降低带宽要求的良好设计.

在一天结束时,事实证明好的应用程序是不会将不必要的记录加载到表单中的应用程序.事实证明,当您以这种方式设计应用程序时,当您将后端部件更改为sql服务器时,您会发现这种方法只需要很少的工作就可以使您的访问前端在sql服务器后端工作得很好.

最后我认为这是对全球近1亿接入用户的估计. Access是迄今为止最受欢迎的桌面数据库引擎,并且大多数用户发现它们无法自由操作.

在网络上遇到操作问题的唯一人是那些没有拆分的人,而不是将前端放在每台计算机上.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐