Solved

how to use lock in vb6 application using acess

Posted on 2006-06-12
7
294 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
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Introduction I needed to skip over some file processing within a For...Next loop in some old production code and wished that VB (classic) had a statement that would drop down to the end of the current iteration, bypassing the statements that were c…
Most everyone who has done any programming in VB6 knows that you can do something in code like Debug.Print MyVar and that when the program runs from the IDE, the value of MyVar will be displayed in the Immediate Window. Less well known is Debug.Asse…
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…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

920 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

12 Experts available now in Live!

Get 1:1 Help Now