Information générale
Catégorie:
Codage, syntaxe et commandes
>>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
Précédent
Répondre
Voir le fil de ce thread
Voir le fil de ce thread à partir de ce message seulement
Voir tous les messages de ce thread
Voir tous les messages de ce thread à partir de ce message seulement