Subject Steps to reproduce possible bad bugs
Author Raymond Kennington
Start with the Transaction tutorial demo.

Steps:

1. Run the transaction tutorial & choose Lesson 5.

2. Choose tiCommitted for both transaction levels.

3. Open left table and add the record:
1, 'a'
and post it and then commmit-retaining.

4. Open right table.

5. Edit left table:
Change 'a' to 's'
Post it
Commit-retaining the left table.

6. Edit right table:
Change 'a' to 'b'
Post it
Commit-retaining the right table.

7. Close/reopen both tables.

8. Observe 'b' and not 's'.

's' is lost without warning.

Now change tr1 and tr2 to have RecVersion = False
and repeat from 1.

Observe the same loss occurs without warning.

Now change tr1 and tr2 to have RecVersion = True
and set PessimisticLocking to True in both
qryMaster1 and qryMaster2.

1. Run the transaction tutorial & choose Lesson 5.

2. Choose tiCommitted for both transaction levels.

3. Open left table and add the record:
1, 'a'
and commmit-retain.

4. Open right table.

5. Edit left table:
Change 'a' to 's'
Post it
but do not Commit.

6. Edit right table:
Change 'a' to 'b'
Post it

*Deadlock* as required.

Now repeat, but commit-retain:

1. Run the transaction tutorial & choose Lesson 5.

2. Choose tiCommitted for both transaction levels.

3. Open left table and add the record:
1, 'a'
and commmit-retain.

4. Open right table.

5. Edit left table:
Change 'a' to 's'
Post it
and commit-retain.

6. Edit right table:
Change 'a' to 'b'
Post it
Commit-retain

7. Close/reopen both tables.

8. Observe 'b' and not 's'.

's' is lost without warning.

If none of these are bugs, then the GSG needs to be corrected --- or explained
more clearly.

--
Raymond Kennington
Programming Solutions
TeamW2W (InfoPower)