Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
TRY...Catch problem
Message
From
01/10/2014 17:13:54
 
 
To
01/10/2014 16:51:10
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows 7
Network:
Windows 2008 Server
Database:
Visual FoxPro
Application:
Desktop
Miscellaneous
Thread ID:
01608628
Message ID:
01608634
Views:
39
>>>Hi All:
>>>
>>>I am running 2 instances of VFP to simulate a file sharing problem. When instance 1 says:
>>>
>>>
>>>USE foo EXCL
>>>
>>>
>>>This works in instance 2:
>>>
>>>
>>>	TRY
>>>		USE foo SHARED
>>>	CATCH TO ww
>>>		MESSAGEBOX('Problem!  You got error # ' + ALLTRIM(STR(ww.errorno)))
>>>	ENDTRY
>>>
>>>
>>>HOWEVER when instance 1 says:
>>>
>>>
>>>USE foo
>>>flock()
>>>
>>>
>>>the 2nd instance just hangs with the following message in the status bar:
>>>
>>>
>>>Attempting to lock... Press <esc> to cancel
>>>
>>>
>>>How can I handle that situation gracefully with TRY..CATCH? I need this since the other system seems to be doing something like flock() and there's no way I can get the user to change the program.
>>>
>>>Thanks,
>>>
>>>Yossi
>>
>>You can use SET REPROCESS TO ... SECONDS to define how long you want to try to lock. And then check what value returned from flock() to see if it was successful or not. But the error won't be triggered.
>>HTH.
>
>I'm not doing the flock(). It's the other guy. I'm just trying to USE the table SHARED. When the other guy has issued an flock(), I'm hanging with that Trying to lock... message.
>
>What kind of lock am I trying to do when I USE SHARED?

VFP9 by default does some extra table integrity checking when you open a table. This extra checking requires a temporary lock placed on the table header. Since someone else has the entire table FLOCK()ed, you can't get a lock on the header.

The solution is SET TABLEVALIDATE TO 0.
Regards. Al

"Violence is the last refuge of the incompetent." -- Isaac Asimov
"Never let your sense of morals prevent you from doing what is right." -- Isaac Asimov

Neither a despot, nor a doormat, be

Every app wants to be a database app when it grows up
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform