transactions - MS Access: Avoiding "Lost Updates" -


We inherited a large access db that has some very weird (and upset) behavior: missing some database updates done. What can we do to avoid it? Is there any setting in access to provide better transaction control?

Here are some more details:

  • We have an access user who has write access (number of very limited users - currently only let me leave as second Are on)
  • We have another access user, which is used by many people, whose access is read only.
  • The user who writes the data
  • After leaving the table and / or even applying and re-entering, the changes have become "committed".
  • After some time (usually overnight) changes are lost

What could be the reason for this behavior?

Our principle is that it is due to some strange behavioral controls within access. The read-only user receives a "unique lock" type of query that is used in a query or form after the user leaves that query / form, ensuring that it is still in the database, in the meantime If the user who wrote has changed the data then these changes will be withdrawn, when the reader will leave the query / form, resulting in a lost update. Ega. Does it have any meaning? Is this a known issue with MS-Access ??

In addition, we are interested in how we can avoid this issue. Is there anything that is embedded in access and can be avoided by switching to "real" databases with better transaction control? (From technical perspective, it would be nice, but of course it would be an immediate task to avoid this time in the project.)

Thanks for any input and tell me what is there Additional information Is necessary.

Your explanation of the scenario is appreciated.

The idea is that a readable user can not cause a change by a user who is lost, is not possible.

Maybe reading users are not really just read? How exactly is read-only versus reading / writing applicable? In my app, I rarely have the form set to read only, and allow all users / permissions / permissions on the form for the read / write user. I agree that whatever you have said, you are using basic user-level security, the default administrator user is likely to be a read-only user, and some other user is a read / write user. Thus, in all forms you can do it in the OnLoad event:

  Me.AllowEdits = (current user () << "Admin") Me.AllowDeletions = Me AllowEdits Me permissions = m It will be intelligent to apply User Level restrictions for table (only back end, or both back end and front end), read only admin user Groups and user user groups, and then let one user read / write. Jet ULS is not like NTFS security, where at least approved permissions are won - in Jet Ulse, the most acceptable win, and that is why you need to ensure that both the administrator and the user group are able to read only And do not allow any administrator to the user, i.e., so all permissions are inherited from group membership.) 

I believe, this back- Nd is being attempted through the NTFS permissions on the MDB. If so, this is likely to be a major problem and not the right way to do it. From what you have said, it does not seem that this is what is going on, so I will not say anything else about it.

But the first thing is that whether I do not or not the so-called read-only users are actually only readable.


Comments

Popular posts from this blog

c# - ListView onScroll event -

PHP - get image from byte array -

Linux Terminal Problem with Non-Canonical Terminal I/O app -