Solved

how to use lock in vb6 application using acess

Posted on 2006-06-12
7
295 Views
Last Modified: 2010-04-07
I am working on an vb6 application with access.

I want to make it multiuser. SO if any user edit the data or record then all the other user get a msg that record is beig use until the first user finhes her work on that record.

So how to use locks to implements that
Any samples codes is there
0
Comment
Question by:ziorrinfotech
  • 4
  • 2
7 Comments
 
LVL 35

Expert Comment

by:[ fanpages ]
ID: 16884219
Hi,

Please note my comment regarding soft-locking in this PAQ:

"Lock Record"
[ http://www.experts-exchange.com/Databases/MS_Access/Q_21394336.html ]

You could apply "soft locking", that is, have an additional column, say "Locked", that you would set to 'True' (or 'Y', or whatever) upon first usage, and reset to 'False' ('N' etc) when the use of the record was concluded (i.e. unlocked).

All users would query this "Locked" column on each record before usage, and if set to 'True' ('Y' etc), then would report that the record was locked.


BFN,

fp.
0
 
LVL 35

Expert Comment

by:[ fanpages ]
ID: 16884226
0
 
LVL 26

Expert Comment

by:EDDYKT
ID: 16884535
Don't think there is any good solution for that.

fanpages's will work only if your application will not crash or you app does not access via network.

The question is who is going to reset the flag if network connection is off and your app is crash?
0
Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

 
LVL 9

Accepted Solution

by:
pradapkumar earned 100 total points
ID: 16885295
to overcome abovesaid problem you can use timout technique.
Add one more column which one will be timestamped.
update that column whenever lock is obtained for that row.
when others try to update that record read the lock column if it is locked then read the timestamp in that column if it is beyond the preset(defined by you as you wish) time out just give lock to that user and update the timestamp. On successful update reset that time stamp column. So, if network crashes next time user may acquire the lock automatically after some period of time.

I thing this may helpful to over come abovesaid problem.

@};-
0
 
LVL 26

Expert Comment

by:EDDYKT
ID: 16885498
how long you are going to timeout?

what happen if the app is actually using it. How do you detect?
0
 
LVL 35

Expert Comment

by:[ fanpages ]
ID: 16890386
Hi,

I use an expanded approach in my applications.

I have a [LOCK] table that defines the table (or set of records) being locked, the LAN user name of the user requesting the lock, & the date/time that the lock was requested.

If the same table (or set of records) is requested to be locked by another user, and it is (they are) currently flagged as locked, and the user is still logged-in to the database, then a message is display to "...try again later...".  This, however, can be overridden if a preset time has been exceeded; typically 5 minutes.  During the update process of the locked table/records, the code checks to see if a [LOCK] record is still in place for that user, and if it is, then the update can continue; but if a [LOCK] record no longer exists, or exists for another user, then a prompt is displayed to say that the timeout was reached, and a new user now has a lock in place.  An option is presented to refresh the form (data) will the most up-to-date data, wait for the lock to be released, or abandon the changes completely.

However, if a record is found for the same table/records & the user is no longer logged-in then the previous [LOCK] record is deleted, and a new record is created for the current user requesting the lock.

Additionally, whenever the database is opened, the [LOCK] table is purged of any records for a user that is no longer logged-in.

BFN,

fp.
0
 
LVL 35

Expert Comment

by:[ fanpages ]
ID: 16892024
I still believe the two questions combined violate an E-E rule of offering more than 500 points per question.
0

Featured Post

NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Put text in a picture ASP.NET C# 2 57
Best way to parse out a json string in VB6? 10 172
VBA filters 2 61
SLMGR Switches Are Not Working On KMS Host 3 94
Introduction In a recent article (http://www.experts-exchange.com/A_7811-A-Better-Concatenate-Function.html) for the Excel community, I showed an improved version of the Excel Concatenate() function.  While writing that article I realized that no o…
Have you ever wanted to restrict the users input in a textbox to numbers, and while doing that make sure that they can't 'cheat' by pasting in non-numeric text? Of course you can do that with code you write yourself but it's tedious and error-prone …
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

810 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question