General information
Category:
Coding, syntax & commands
>>SET LOCK ?
>>
>>Vlad
>>
>>>I have several utilities in my app that use the REPLACE ALL command, as well as the DELETE all command. I am aware that both of these statements lock the table header during their execution, so that that no other changes can be made before they finish. This is a limitation I have been able to live with thus far. I just returned from vacation, and now all of these utilities don't work with other people in the tables. This has never been a problem before, and I can't figure out what could have changed. All of the sudden, any time I try to issue a REPLACE ALL, from the command window (on my machine or any other machine) or one is issued in code from the app, I either get an error message ("File is in use by another") or a wait window ("Attempting to lock...") depending on the REPROCESS setting in the current datasession. What have I changed to cause this?
>
>Well, that was my first guess too, but on checking in help, I found that SET LOCK doesn't apply to REPLACE ALL and DELETE ALL. From what I understand these statements lock the table all of the time, no matter what. What I don't understand is why they can't do it now, and they could before. This is causing MAJOR problems for us; any insight that anyone could give would be greatly appreciated. Thanks.
But it applies to other commands that might lock the dbf, so your REPLACE/DELETE ALL will not be able to lock the dbf. SET LOCK is scoped to the data session.
Also: Do you use RLOCK()/LOCK()/FLOCK()? If yes, look for such locks that are not removed.
Vlad
Previous
Reply
View the map of this thread
View the map of this thread starting from this message only
View all messages of this thread
View all messages of this thread starting from this message only