我认为,对这一问题的答复是有问题的、令人困惑和不完整的,因此,我努力做得更好。
Q1: How can we make sure that the write-user can make changes to the table data while other users use the data? Do the read-users put locks on tables? Does the write-user have to put locks on the table? Does Access do this for us or do we have to explicitly code this?
没有人以任何完整的方式回答这一问题。 关于在准入选择中设置锁的信息与读写锁无关。 No Locks vs. All Records vs. Edited Records is how You set the Object Records locking for WRITES.
没有任何锁点意味着你正在使用OPTIMISTIC锁,这意味着,如果记录自发射自己的ed以来发生变化,你允许多个用户编辑记录,然后在记录发生后通知他们。 优化锁定是你应该开始的,因为它没有编码来实施,对小用户来说,它几乎永远不会造成问题。
所有记录都意味着,每台桌上就锁定了,而台上的任何时间都是发射的。
编辑记录意味着,记录被锁定的更少,但记录是否单一记录或不止一个记录取决于贵国是否建立了数据库,以使用记录级的锁定(第4号杰特案首次加)或页码锁。 坦率地说,我从不认为设立创纪录的僵局是值得的,因为令人乐观的锁定会照顾到大多数问题。
人们可能认为,你想要使用创纪录的悲观锁,但事实是,在绝大多数用户中,几乎从来没有编辑过同样的记录。 现在,显然,某些种类的用具可能是例外,但如果我看上去这种用具,我很可能试图通过重新设计图象来加以设计,这样,两个用户就很难编辑同样的记录(通常是通过某种形式的交易编辑,而如果通过增加记录而不是编辑现有数据来作出改动)。
现在,就你的实际问题而言,有若干办法可以实现某些用户只读和给予他人书写特权的限制。 喷气用户级安全是为了这一目的,只要对这个术语的任何有意义的定义具有“安全”意义,便会进行罚款。 总的来说,只要你重新使用喷气/ACE数据储存,你将获得的最佳保障是Je ULS提供的。 这种做法是可笑的,是的,但是,你的用户会通过打破这种犯罪而犯下可恶的罪行,因此可能就足够了。
我倾向于完全不执行Jet ULS,而只是设计数据编辑表格,以便核对用户的视像仪表,使表格仅读或易读,取决于用户需要获得哪些数据。 您是否希望把集团成员列入数据表,或为此目的维持视窗安全小组。 你还可以使用喷气式工作组档案处理,并提供不同的系统。 mdw文档供书写用户使用。 只读到的用户将透明地作为行政记录,而那些被排在行政上的用户只可读取。 书写用户将登录在其他一些用户名上(显然,在你为发射笔记、不提供密码而提供的短处),并将用来确定读写表格。
如果您使用 Jet ULS,那么正确操作可能会变得非常困难。这涉及将所有表格锁定为只读(甚至可能不是只读),然后使用 RWOP 查询来访问数据。在我14年的专业Access开发中,我只完成过一个这样的应用程序。
1. 总结我对贵问题部分的答复:
How can we make sure that the write-user can make changes to the table data while other users use the data?
我建议在申请中这样做,根据用户记录,确定在操作时间读/读或编辑的形式。 最容易的方法是确定你的表格只读,并在印发表格时改写给书写用户。
Do the read-users put locks on tables?
没有任何实际意义。 喷气机/ACE确实读了锁,但只有为了保持个人观点和用户更新数据的目的。 虽然从理论上来说,跟踪这些业务的间接费用减缓了事情,但它们并没有停止任何类型的书面业务。 这还不够令人担心。
Does the write-user have to put locks on the table?
与Jet/ACE一道,自动接触你,特别是如果你选择作为你的缺席而令人乐观的锁定。 这里的关键要点是,访问记录是数据输入,一旦装上表格,记录就可读到24小时,一旦记录编辑,是否为其他用户打上书写,则取决于您是否使用乐观或悲观的锁定。 同样,这是你以受约束的形式采取违约行为时的那种接触。 在你遇到问题之前,你不担心其中的任何内容。
Does Access do this for us or do we have to explicitly code this?
基本上,除了在营业时间确定假日(根据谁可以书写),如果你重新使用乐观的锁定,就没有必要编码。 随着悲观的锁定,你不会在代码上打上have/em>,但你几乎总是需要,因为你只能让用户 st忙地拿到默认行为和错误信息。
Q2: Are there any common problems with "MS Access transactions" that we should be aware of?
喷气机/ACE支持承付/退款交易,但我不清楚这是否反映了你在这个问题上的含义。 总的来说,除保持原样外,我不使用交易,例如,在制作发票时,或进行涉及多个表格的任何更新。 它致力于你期望它,但对于绝大多数业务在准入申请中并不真正必要。
也许这里的一个问题(特别是鉴于第一个问题)是,你可能并不十分了解,获取数据的目的是制作与表格相容的数据。 “交易”是一个对无约束和无国籍的征象(例如以浏览器为基础)非常重要的议题,但对于数据夹来说,编辑和保存工作都是透明地进行的。
对于某些类型的业务来说,这可能会造成问题,有时在使用无约束形式数据时,这样做是适当的。 但从我的经验来看,这种情况很少发生。 我不使用无限制的形式——我用许多语言做方言,也像——我只是说,我的手头没有打上“edit>无约束表格。 除几乎没有任何例外外,我的所有数据都带有约束性表格。
现在,在准入方面,没有约束的形式实际上比较容易执行(特别是如果你称你的编辑控制与基本领域相同),但采用未经约束的数据编辑表格确实缺乏使用访问点,即对你具有约束力的文件。 无约束性的主要缺点是,你失去了所有创纪录的活动,如Insert、前等。
Q3. Can we work on forms, queries etc. while they are being used? How can we "program" without being in the way of the users?
这个问题得到了很好的解决。 所有的多用户或复制用户都应分开,大多数单一用户也应当使用。 它设计良好,使数据更加稳定,因为只有数据表最终由一个以上用户开放。
Q4. Which settings in MS Access have an influence on how things are handled?
“......” 什么?
Q5. Our background is mostly in Oracle, where is Access different in handling multiple users? Is there such thing as "isolation levels" in Access?
我并不具体了解有关Oracle的任何情况(如果我的客户想要的话,他们也不能支付这笔费用),而是要求将接触和Oracle带的误解作一比较。
准入是一种应用开发工具。
甲骨文是工业力量数据库服务器。
Apple果和 or果。
当然,现在,有违约数据库发动机的准入船舶,最初称为杰特,现在经过修订并改名为阿埃航天中心,但进入发展平台的许多层面可以完全与缺席数据库发动机Je/ACE脱钩。
在这种情况下,你选择使用喷气机/ACE后端,对小用户,即25岁以下用户,可能只罚款。 也可以罚款50或100美元,特别是在只有少数同时使用者获得书面许可的情况下。 虽然Jet/ACE的255个用户限额既包括阅读用户,也包括书写用户,这确实控制了多少同时用户可以支持,而且就你而言,你与大多数读到用户接触,因此,设计好像很难,而后端没有问题。
基本上,我认为,你的Oracle背景可能会导致你误解如何在准入方面发展,如果预期做法是把你的形式约束在无需撰写法典的情况下记录更新的来源。 现在,为了提高效率,把你的形式与记录分门别类而不是整个表格联系起来是一个好的想法,但即便在数据编辑表格的记录表上有一个完整的表格,只要你的数据表有有效的索引,那么在编辑Jet/ACE表格(旧的横跨电线的神话仍然排出)方面,查阅就会相当高效。
记录锁定是你最有道理的,其原因之一是进行约束性编辑,因为编辑形式知道背后随时会发生什么(每间隔约二次,补假)。 也就是说,它不像一个网页,在与原始数据检索业务完全无关的交易中,你检索了数据副本,然后把ed回服务器。 在进入等约束性环境中,在后端数据文档上锁定档案将始终能够追踪某人有记录可供编辑的事实。 这使得用户的ed子无法在他人的ed子上站出来,因为上网了解国家并告知用户。 这一切都是在开发商没有编码的情况下发生的,是约束性编辑模式的极大优势之一(除了不必书写密码来张贴its)。
对于那些首次进入其他平台的有经验的数据库方案人员,我强烈建议使用“准入”作为终端用户。 列出所有点和点击特征。 操作表格和报告izar,检查结果。 我可以向所有人表示,这是良好做法的证明,但是,它们肯定地表明预定如何使用准入的默认假设。
如果你发现自己写了许多法典,那么你可能就失去了接触点。