Solved

how to use lock in vb6 application using acess

Posted on 2006-06-12
7
290 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
6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

 
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

Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
Is an IP address in a Range 22 71
Use closed file on desktop in vba 6 57
DIR issue 7 47
VB6 - Convert HH:MM into Decimal 8 35
Introduction While answering a recent question about filtering a custom class collection, I realized that this could be accomplished with very little code by using the ScriptControl (SC) library.  This article will introduce you to the SC library a…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
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…

707 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

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now