Data that is not locked is read from the same snapshot (version)
of the database. If you call a modifying function (for example,
INSERT, MODIFY,
or DELETE
), on a table,
the whole table is locked.
Locking Record Sets
Usually you lock a table before reading a set of records in that
table if you want to read these records again and modify or delete
them. With Classic Database Server, you can choose to lock the
table with LOCKTABLE(TRUE,TRUE)
after reading the
records for the first time instead of locking with
LOCKTABLE
before reading the records for the first
time.
When you try to modify or delete the records, you receive an error message if another transaction has modified the records.
You also receive an error message if another transaction has
inserted a record into the record set. However, if another
transaction has deleted a record from the record set, you will not
notice this change. The purpose of locking with
LOCKTABLE(TRUE,TRUE)
after reading the records for the
first time is to improve concurrency by postponing the table lock
that Classic Database Server puts on the table.