This is exactly what I was asking about.
- My application works just fine with multiple concurrent users using the same bunch of tables for ears without using the SHARE option.
I am not using EXCLUSIVE anything here. I just use:
USE tablename IN 0
- No other option, and Exclusive is OFF.
I never get the "File is in use by another user". Except on this one subroutine. So I am windering why I get it here and not everywhere else.
And I am not getting it all the time either. Maybe once every 100,000 times when this module is used. So it's pretty rare when I get this error.
But it is still an error, and it needs to be prevented.
So I would still very much like to really understand what the SHARE option really does?
Pros and Cons. Or what I gain and what I lose when I use it?
Thanks ALL for your comments/answers.
Cyrus
>>May sound trivial, but I am Just trying to better understand what the SHARED option does in the USE command.
>>
>>It seems to me that the SHARED option is already embedded in USE command, since I can USE a file across a network already, without having to specify the SHARED option. Almost all the tables I open in a Multi-User environment don't have the SHARED option, and they are all open across the network, no problem.
>>
>>So my question is, what are the trade offs of using the SHARED option in a USE command ? - What do I lose?, what do I gain?
>>
>>Here's why I need to know. Only in one part of the code where I am centrally recoding "The last issued serial #', I have a
>>USE table IN 0,
>>command, and in a multi-user environment sometimes they get the error
>>Error: File is in use by another user.
>>
>>So, I am trying to figure out, how can I eliminate this error?
>>Thanks for your help.
>
>That's not trivial. I argue you should NEVER, EVER build a FoxPro add without using SHARED! Exclusive use is the exception, not the rule.
>
>USE THEFILE SHARED
>IF RLOCK()
> REPLACE serial# with serial# + 1
> RETURN serial#
>ENDIF
>RETURN .F.