Sequential Key Counter (%SK%) (AREV Specific)
At 16 NOV 1997 03:20:31PM W. Hollenhorst wrote:
I combine the sequential key conter in a database
with a control code. The counter consists of 9
digits and the tenth digit represents the control
code. In some cases the control code can have the
value of 10. In this case the key is not suitable
and the program has to look for the next key.
Now if I open my window it reads the key from the
%sk% record in the dict.table. Even after the
cursor has left the key prompt the %sk% record is
not updated. However when I open the same window
a second time the new window correctly selects the
next available key.
Until now I could not find where AREV stores the
used keys as long as the assompanying record is not
written to the table.
When my program has to select a new key in a network
surrounding i should look whether an another user
is using the new key.
Can anybody help and tell me where all used keys
are stored before the new records are written to
the databases? thank you very much!
w.Hollenhorst
At 17 NOV 1997 05:09AM Oystein Reigem wrote:
W,
I asked something similar recently,
on the OpenInsight Specific list.
I got some help, but there was no plain
and simple solution.
See the following posting (and the replies):
Subject: Sequence counter conflict in multiuser apps Category: OpenInsight Specific Author: Oystein Reigem Date: 10/22/97 07:57 AM- Oystein -
At 17 NOV 1997 07:12AM Kevin at KPW wrote:
The %SK% is a Dict entry within your data table.
To access it with any subroutine you need to
Open Dict.Table name and use %SK% FIELD.
You can Edit Dict.Tablename %SK% to display
this value at any time for the table called
Tablename or whatever.
We read this value then increment it within our
subroutines then write the incremented value
into this field.
In this manner we are able to control the access
to be restricted to the person opening the
window at that time rather than relying upon the
arev system to control that counter.
We had to do that because the locking over
networks of the %SK% does not work!
Hope this helps.
Regards,
Kevin at KPW
email [email protected]
At 21 NOV 1997 08:45AM David Kafka wrote:
If I understand your question, you are asking how ARev keeps track of active but unsaved keys using %SK%. The ARev routine does not store these keys anywhere. What happens is that it first retrieves the current value in the %SK% record, and checks to see if the record with that key is currently locked. If so, it increments and tries again. So, if you have several windows open to that file, each will have a record locked even if not saved. As many people will tell you, this method is simplistic and can cause problems.
At 21 NOV 1997 09:37AM Victor Engel wrote:
I've seen quite a few posts stating that the %SK% logic is either buggy or problematic. However, I have not had problems with it myself except a situation where the value somehow became absurdly low due to some sort of corruption. Then, the next person to use it has a very long wait while the system finds the next unused number. I'm curious though what other sorts of problems there are with it.