You can free only the locks associated with a table by calling the CTTable::UnlockTable() method. Only the locks held for records of the table are released, and all other record locks are kept.
// free locks for a table
try
{
ATable.UnlockTable();
}
catch (CTException &err)
{
printf("Unlock table failed with error %d\n", err.GetErrorCode());
}
If freeing locks associated with a table inside an active transaction, the locks of updated records will only be actually freed when the transaction terminates.