What I have done is to create a table that will be used for just this purpose. When I retrieve a record for editing, I place the table name, record key, and date retrieved into this "locking" table. This way, before retrieving a record for editing, I can check this "locking" table by table name, and record key to see if this record is "checked out" for editing. If found, I check the date of the "lock". If it is more than 1 hour old I ignore it, post the new informaiton about the new person wanting to "lock" this record, then proceed with posting this record on the workstation ready to be edited. The reason I check the time, is that if the time is more than an hour old, I assume that something happened to the previous process, and the record really is available for editing.
This system has been in production for over 8 years with no problems.