如何在窗口应用程序中部署和管理 ms 访问作为客户端-服务器

Posted

技术标签:

【中文标题】如何在窗口应用程序中部署和管理 ms 访问作为客户端-服务器【英文标题】:how to deploy and manage ms access as client-server in window application 【发布时间】:2011-06-05 12:22:56 【问题描述】:

我没有在窗口应用程序中使用 ms-access 作为客户端-服务器的经验。让我了解以下一些知识-

    在服务器中,我是否只需将此访问数据库放在共享文件夹中?在客户端,只需指向这条路径?我可以获取示例路径语法吗? 四个用户将使用此数据库。我应该怎么做并发?会有插入、更新和删除操作。

谢谢。

【问题讨论】:

访问不是服务器。您应该使用 SQL Server。 UAT 已完成。 :(我该如何继续? 您最后的评论不清楚,您能详细说明一下吗?听起来您是在说您需要继续使用 Access,因为它已经过测试和接受。但是,如果系统扩展超出原始规格,则可能需要进行一些重新设计才能正确满足新规格。有些东西必须重新测试。 是的,大卫。我会重新设计。 【参考方案1】:

我担心您在此处收到的回复类型。无论是否拆分,您都无法可靠地共享任何 Access 前端。对于您的问题:

在服务器中,我是否只需放置此访问权限 db 在共享文件夹中?而在客户端, 只是指向这条路径?我可以得到一个 示例路径语法?

您首先需要将您的应用程序拆分为两个文件,一个是后端,只有数据表,另一个是前端用户界面对象(表单/报告/查询/等)和链接表(而不是本地表)。只有后端文件放在服务器上。每个单独的用户都会得到一份前端的副本。

链接的表应该使用 UNC 路径链接,即\\Server\Databases\MyDataFile.mdb,而不是使用映射驱动器(在不同的工作站上可能映射不同)。

您可能会发现posting of mine about setting up a proper Access development environment 很有用。它还讨论了部署和拆分应用程序。有关这方面的更多信息,您可能会发现 Tony Toews set of articles on the subject 很有帮助。

顺便说一句,拆分架构一直是 Access 应用程序唯一可行的部署方法。我一直想知道为什么 MS 在解释这一点的文档中没有做得更好。

四个用户将使用此数据库。如何 我应该为并发做些什么?那里 将插入、更新和删除 操作

四个用户应该是微不足道的,但这完全取决于您拥有的数据类型的性质以及用户如何编辑它。如果单个记录需要由多个用户编辑,那么您很容易发生编辑冲突。另一方面,如果用户通常插入和编辑他们自己的记录,而不是真正与其他用户重叠,则应该很少或根本没有并发问题。

有关记录锁定问题的一些详细考虑,请参阅我很久以前的一个帖子,它考虑了setting up an Access database for multi-user access的主题。

【讨论】:

谢谢你,大卫-W-芬顿。这对我有很大帮助。我会阅读你所有的链接。【参考方案2】:
    是的,数据库可能只是位于文件共享上。类似于:\SERVERNAME\ShareName\filename.mdb 我猜,取决于使用情况。数据库引擎应该像任何其他数据库一样处理基本并发。如果使用量要继续扩大,那么我强烈建议迁移到更易于管理的数据库系统。

当多个用户通过网络访问它时,您(和您的应用程序)需要开始考虑如何处理网络中断(客户端启动,服务器关闭)、连接问题(一个用户可以访问数据库,另一个用户可以访问数据库) 't)、数据库备份(您当前的备份和恢复策略是什么?)等

【讨论】:

1) 用于备份和恢复,目前我没有任何策略。只需手动备份。让我知道任何合适的策略。 @soclose:一个合适的策略是迁移到更易于管理的数据库系统,例如 SQL Server。手动步骤通常不能很好地扩展,并且它们往往会严重依赖一个人,这个人可能会也可能不会总是在那里。如果多人访问数据库,简单地复制和替换文件是自找麻烦。 非常感谢大卫。 2)实际上它们的用法并不多。但是,我想为多个用户准备它。让我有任何想法。 ms access有锁功能吗? 四个用户应该在 Jet/ACE 的能力范围内。任何无法为该用户群体设计高性能 Access 数据库应用程序的人都做错了。

以上是关于如何在窗口应用程序中部署和管理 ms 访问作为客户端-服务器的主要内容,如果未能解决你的问题,请参考以下文章

在客户端笔记本电脑上使用 ms 访问的 windows 窗体应用程序的部署问题

如何在tomcat中部署多个Web应用程序?

linux如何访问对端weblogic

如何使用 JWT Token 管理用户身份?

iOS 客户端:我可以让用户登录 Active Directory,但如何访问 MS Graph API?

Heroku:如何部署一个节点应用程序,客户端和服务器在不同的端口上运行?