I'm generating a sequential 5 digit alpha-numeric "number";  the MRU is stored in a small "parameters" the table.  I need to lock the table so a user can read the current number, generate the next and update the table before another user reads the number.  Though not probable, it is possible and has in fact happened.

The parameters table is 3 columns by 12 rows; 4 of the rows are used in a similar manner - pick ticket numbers, shipping numbers, container numbers, etc.

My understanding is that a row lock would lock during the read then unlock and then lock for the updating of the new number.  In between a user could read the number while the new number is being generated.  That's why I think I need a table lock.

I'm open to any way to accomplish my goal or corrections if my understanding is wrong.

Doug

On 3/4/2020 8:06 AM, Dan Goldberg wrote:
Why would you want to lock a table?

Dan Goldberg

Dan Goldberg
MIS Manager
Lance Campers

------------------------------------------------------------------------
*From:* [email protected] <[email protected]> on behalf of Doug Hamilton <[email protected]>
*Sent:* Tuesday, March 3, 2020 4:17:11 PM
*To:* R:Base List <[email protected]>
*Subject:* [RBASE-L] - Table locks

I can't get table locks to work.

I set a lock on a table on one computer.
On a different computer, LIST <tablename> shows a remote lock on that
table, sometimes.
In a block of code on the different computer, SET VAR vTableLocks =
(CVAL('TABLELOCKS')), vTableLocks is blank, sometimes.

I can't get enough consistent results/errors to know what questions to ask.

How long does it take for different workstations to see a table lock?
How does RBase determine who set the lock? USER - as in SET USER? NAME -
as in SET NAME? But NAME "must be saved to the configuration file"
(RBX.5 Help).  But doesn't everybody read the the same CFG file and
would have the same name?

Below is test code, vTableLocks doesn't contain MoparSysParams even
though it is locked (local lock) on a different computer (yes, the
sessions of RBase are all in the same current folder).
Is there a difference between setting a local lock and a remote lock? I
thought a lock was a lock, local and remote was just a matter of
perspective of who set the lock.

SET VAR vTableLocks VARCHAR
LABEL TestLock
SET VAR vTableLocks = (CVAL('TABLELOCKS'))
IF (SLOC(.vTableLocks,'MoparSysParams')) <> 0 THEN
   PAUSE FOR 2 USING 'Waiting for Pick Ticket Access'
   GOTO TestLock
ENDIF

SET LOCK MoparSysParams ON
RETURN

TIA
Doug
RBx.5E

arrrgh

--
For group guidelines, visit http://www.rbase.com/support/usersgroup_guidelines.php <http://www.rbase.com/support/usersgroup_guidelines.php>
---
You received this message because you are subscribed to the Google Groups "RBASE-L" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/rbase-l/72ef7172-1993-8977-5079-7cdc16717937%40wi.rr.com.

--
For group guidelines, visit http://www.rbase.com/support/usersgroup_guidelines.php
---
You received this message because you are subscribed to the Google Groups "RBASE-L" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected] <mailto:[email protected]>. To view this discussion on the web visit https://groups.google.com/d/msgid/rbase-l/BN8PR06MB5346BEF8414A412CDB67C811AAE50%40BN8PR06MB5346.namprd06.prod.outlook.com <https://groups.google.com/d/msgid/rbase-l/BN8PR06MB5346BEF8414A412CDB67C811AAE50%40BN8PR06MB5346.namprd06.prod.outlook.com?utm_medium=email&utm_source=footer>.

--
For group guidelines, visit 
http://www.rbase.com/support/usersgroup_guidelines.php
--- You received this message because you are subscribed to the Google Groups "RBASE-L" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/rbase-l/21ef156b-05eb-7884-3168-2dc0250a010d%40wi.rr.com.

Reply via email to