Site Menu
- Home
- Products
- NexusDB
- Nexus Quality Suite
- NexusDB Drivers & Connectors
- Nexus Remoting
- Nexus Memory Manager
- Some of our Customers
- Testimonials and use(r)s
- Downloads
- Documentation
- Support
- Pricing & Orders
- About
- Community
- My Nexus
- Recently Updated ...
- Search...
- Site Login
Search
How to handle locking errors?


Pessimistic locking:
Table.Edit; // locks the record, no other client will be able to make
conflicting changes
try
// set field values
Table.Post;
except
Table.Cancel;
raise;
end;
Optimistic locking:
repeat
Table.Edit; // just gets the current record version from the server
without placing a lock
try
// set field values
Table.Post;
break; // exit the repeat loop, record posted successfully
except
on E: EnxDatabaseError do begin
Table.Cancel;
case E.ErrorCode of
DBIERR_OPTRECLOCKFAILED:
{ conflicting change... retry };
DBIERR_OPTRECLOCKRECDEL: begin
{ record has been deleted... }
raise;
end;
else
raise;
end;
end;
else
Table.Cancel;
raise;
end;
until False;
Questions? Problems?
- Interested to buy but something put you off?
- Can't find what you're looking for?
- Have a suggestion?
Let us know. If you're having trouble contacting us, please check here.
Site Updates
- May 27 2025 - 2:55pm
- May 14 2025 - 12:32pm
- Mar 19 2025 - 9:52pm
- Mar 14 2025 - 11:23am
- Mar 13 2025 - 11:42pm