|
|
|
SSC-Enthusiastic
      
Group: General Forum Members
Last Login: Sunday, September 09, 2012 6:28 AM
Points: 123,
Visits: 61
|
|
Hi,
My application allows a number of different users to be defined and currently a user can sign into the system, with the same account details, a number of times. I need to change this so that any one user can only ever be logged in once.
So I was hoping that I could apply an application lock for each logged in user and check the status of the lock when attempting to sign in. I don't want the system to hang if the lock is already in place so I was trying to use the applock_test to check the status of the lock before trying to apply it.
The problem I have is that the applock test always returns 1 even if the lock is in place.
Am I doing something wrong? Is the better way to achieve this?
Many Thanks
Jon
The code is wrapped in FoxPro but looks like this:
* test the lock for the provided UserID w_chklock = g_ocsdb.ExecSQL("SELECT applock_test('public','" + ALLTRIM(UPPER(p_userid)) + "', 'Exclusive', 'Session')")
IF w_chklock > 0 * if the lock is available to grant lock it exclusively w_chklock = g_ocsdb.ExecSQL("EXEC sp_getapplock '" + ALLTRIM(UPPER(p_userid)) + "', 'Exclusive', 'Session',0") w_userct = 0 ELSE * the lock is not available warn the user they cannot get in w_userct = 1 ENDIF
|
|
|
|