Subject Concurrency and transaction problem
Author mmenaz@lycosmail.com
I'm a little ashamed of asking about that, but I thought things should
behave one way, while it's going other way, so there must be something
I've missed and I can't figure out what.
I've a program running in two PC, or, put, two instances of the
program running against the same database (for debug purpose, of
course).
The connection has a default transaction trBase with transaction
isolation to tiCommitted and autocommit to true. The login to the
database is done with the same user/password (sysdba, masterkey ;)).
Program A and program B browsing the same data in a grid. Program A
edits a record, then posts it. Program B, that since the query is not
refreshed, sees the old data value, edits the same record, then posts
it too. No errors occurs! If I refresh the query in program A I can
see the data B entered. Then I've added a transaction bar to the
program, explicitly started transaction in A program and in B program
and done as above. (commit retaining) No errors again! What's wrong?
Program B should receive a warning that in the meanwhile the data has
been changed, and it should automatically refresh the row before
stating editing, so it can see A program changes before editing. What
can I do? What are the correct setup/steps for having users edit the
same data they see in the grid?
Thanks
Marco Menardi