MS Access (JET) 是否适合多用户访问? [英] Is MS Access (JET) suitable for multiuser access?

查看:33
本文介绍了MS Access (JET) 是否适合多用户访问?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个产品设计为桌面产品,使用 MS Access 文件作为数据库.

I have a product designed to be a desktop product using MS Access file as a DB.

现在,有些用户需要将它安装在几台 PC 上(比如 2 或 3 台)并共享数据库.

Now, some users need to install it in a few PCs (let's say 2 or 3) and SHARE the database.

我想将 MS Access 文件放在共享文件夹中并从 PC 访问它,但是... JET 引擎是为多用户访问而设计的?

I thought to place the MS Access file in a shared folder and access it from the PC, but... the JET Engine is designed for multiple user access?

这样做有什么技巧或注意事项吗?

Any tips or things to be aware of doing this?

该应用程序是.net 应用程序,使用数据库作为存储(不使用数据库作为前端)

The app is a .net one, using the database as storage (not using the database as frontend)

推荐答案

此线程的答案中有太多错误信息,我不知道从哪里开始.我只花了 4 分在声誉上投票反对其中包含误导性和错误信息的答案.

There is so much misinformation in the answers in this thread that I don't know where to start. I just spent 4 points in reputation voting down the answers with misleading and wrong information in them.

  1. Jet 数据库引擎(这是此处涉及的全部内容,正如 OP 通过编辑所阐明的那样)默认是多用户的——它是从头开始构建的.

  1. the Jet database engine (which is all that's involved here, as the OP clarified with an edit) is by default multi-user -- it was built from the ground up to be that way.

当网络不低于标准时,共享 Jet 数据存储是非常可靠的.这意味着不是 WAN 也不是无线,因为带宽必须足以让 Jet 维护 LDB 文件(用于多用户锁定),这意味着本地 PC 的 Jet 数据库引擎实例每秒 ping 一次(使用默认设置),并且因为 Jet 无法从断开的连接中恢复(这在无线环境中很常见).

sharing a Jet data store is very reliable when the network is not substandard. This means not a WAN and not wireless, because the bandwidth has to be sufficient for Jet to maintain the LDB file (for multi-user locking), which means a ping by your local PC's instance of the Jet database engine once per second (with default settings), and because Jet can't recover from a dropped connection (which is quite common in a wireless environment).

Access 崩溃的情况是当前端 Access 应用程序 MDB 被共享时(本海报并非如此).它失败的原因是因为您正在共享无法可靠共享且没有理由共享的内容.由于 Access 对象存储在 MDB 文件中的方式(整个 Access 项目存储在系统表之一的一个记录中的单个 BLOB 字段中),如果多个用户打开它,它很容易损坏.据我估计,共享一个 Access 前端(或一个未拆分的 MDB 与表和表单/报告/等都在一个 MDB 中)是 99.99% 的 Access/Jet 文件损坏的根源.

the situation where Access falls down is when a front-end Access application MDB is shared (which is not the case for this poster). The reason it fails is because you're sharing things that can't be reliably shared and have no reason to be shared. Because of the way Access objects are stored in an MDB file (the entire Access project is stored in a single BLOB field in one record in one of the system tables), it's very prone to corruption if multiple users open it. In my estimation, sharing an Access front end (or an unsplit MDB with the tables and forms/reports/etc. all in one MDB) is the source for 99.99% of corruptions of Access/Jet files.

我对 OP 问题的基本回答是,是的,对于这种规模的应用程序,Jet 将是一个很好的数据存储.但是,如果用户数量有可能增长到 25 人以上,那么最好从头开始使用一个在用户数量较多时更强大的数据库引擎.

My basic answer to the OP's question is that, yes, Jet would be a great data store for an app of that size. However, if there's any possibility at all for the user population to grow above 25, then it might be better to start off from scratch with a database engine that is more robust at higher user populations.

这篇关于MS Access (JET) 是否适合多用户访问?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆