Recently I ran into a problem that states like this:
A databse server for sports, 2 opened sessions, progress 10.1C
procedure 1.p
and procedure 2.p
The discussion started with a transaction and a multi-user architecture.
The problem is: we are in a transaction, that has not been ended and the other users can already see the record (that supposed to be nonexistent till the end of the transaction).
What I found out that every time an indexed field is updated the record can already be seen in the database.
I've added an index on state.statename (active index is enough), and did the creation and assignation on state.statename and the FOR EACH searching for a state.statename > 'w' the record is available for reading. But if the FOR EACH is on state.state > 'w' the record cannot be seen.
Progress reindexes after creating and assigning an index field, but why is it available if it is in a transaction, and why only when searching using that particular index that has been updated?
Any thought on this? Any explanation?
A databse server for sports, 2 opened sessions, progress 10.1C
procedure 1.p
Code:
DO TRANSACTION:
CREATE state.
ASSIGN state.state = 'ww'.
MESSAGE 1
VIEW-AS ALERT-BOX INFO BUTTONS OK.
UNDO, LEAVE.
END.
Code:
FOR EACH state NO-LOCK
WHERE state.state > 'w':
DISPLAY state.
END.
The problem is: we are in a transaction, that has not been ended and the other users can already see the record (that supposed to be nonexistent till the end of the transaction).
What I found out that every time an indexed field is updated the record can already be seen in the database.
I've added an index on state.statename (active index is enough), and did the creation and assignation on state.statename and the FOR EACH searching for a state.statename > 'w' the record is available for reading. But if the FOR EACH is on state.state > 'w' the record cannot be seen.
Progress reindexes after creating and assigning an index field, but why is it available if it is in a transaction, and why only when searching using that particular index that has been updated?
Any thought on this? Any explanation?