Detecting record lock in Paradox Table

Posted on 1998-11-30
Last Modified: 2010-04-04
I am writing an multi-tier application using Delphi3 C/S version.  Is there any way I can detect from client A if a record has been locked due to editing by any other clients ?
Question by:ray3898

Expert Comment

ID: 1348702
How about this:

Write a function that accepts the TDataSet name as a parameter and will return a TRUE value if the record is locked.

Then try and place the dataset in edit mode within a try except error handler. You could analyse the error in more detail to trap specifically for a situation where the record is locked. This function will however tell you if it is possible the allow the edit or not.


function IsLocked(TheDataSet: TDataSet): Boolean;
   Result := False;
      Result := True;

LVL 27

Expert Comment

ID: 1348703
hi ray3898,

a other method

procedure TForm1.Button1Click(Sender: TObject); {Or other EventMethod}
var IsLocked : Bool;
 if dbiisrecordlocked(table1.handle,IsLocked) = DBIERR_NONE then
   if IsLocked then showmessage ('Record Locked');

This requires the unit BDE in the uses clause of your unit.


Author Comment

ID: 1348704
It seems to me that your method is reside on the client side rather than the application side (back-end).  Since both client A and client B would receive a copy of the actual data (table1.db) from the application server, so all locking are taken place on the local copy but not on the actual table (am I right ?)  Therefore, what I want is when client A want to edit a record, the program will check directly from the application server to determine the current status of the record. Is it possible to do it and how can I do it ?

Thank you

Accepted Solution

Ronald Buster earned 50 total points
ID: 1348705
I used to have the same problem, use the following statement,
just a code snippet from one of my sources


  ... whatever you want to do


   on E: EDBEngineError do


           ... record is proberly locked





Featured Post

Best Practices: Disaster Recovery Testing

Besides backup, any IT division should have a disaster recovery plan. You will find a few tips below relating to the development of such a plan and to what issues one should pay special attention in the course of backup planning.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
code issue 8 130
Delphi : could not find program, '...exe' 2 171
Making delphi communicate with a c# service 16 103
Base1 Encode/Decode 3 77
Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
Have you ever had your Delphi form/application just hanging while waiting for data to load? This is the article to read if you want to learn some things about adding threads for data loading in the background. First, I'll setup a general applica…
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit If you want to manage em…

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question