January 12, 2010 at 4:06 am
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
Viewing post 1 (of 1 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy