Do you have to lock each record in DDA to write to it?
I do this in one app where I have to Change and Delete multiple records and at times I get error message on Lock
I do seek the record and lock the rowed before deleting or updating. I have had no issues one record but on multiple records in this app at times users will get an error
I believe the use of the lock API in DDA is optional. The engine will internally apply a lock as it writes to a row. There may be cases when it is helpful to lock a row yourself--to coordinate with checking other rows/tables, perhaps--but it isn't required if you're just making a simple update or delete, in most cases.
However, due to the internal use of locking you might still encounter errors when the engine attempts to lock a row if other connections are also contending to modify the same row. You may need to catch the error and execute a back-off-and-retry of the operation in some way (automatically, or let the user retry).