Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Stopping a SELECT command
Message
General information
Forum:
Visual FoxPro
Category:
Other
Miscellaneous
Thread ID:
00661167
Message ID:
00661219
Views:
37
What exactly you didn't understand? This code sets SET ESCAPE ON and also ON ESCAPE queryHalt = .t.
QueryHalt should be declared as private variable and set to .f. So, you would know, if user presses ESC by examing this variable. After select statement was ran, you have to restore original settings. That's why they are first saved, then restored... I just take out some code from our Query engine, you can modify it to fit your needs.

Finally, you would be able to stop query only after the progress bar appears (that's why set talk on [I would also add SET TALK WINDOWS NOSHOW]). Sometimes, the joining part takes a long time, but you have no control to stop it...

>I´m sorry, but I didn´t understand. Am I missing something? Could you please explain it to me?
>
>>>Hi, is there any way to stop a SELECT? There are some queries that can take a long time to complete and I want to enable a "STOP QUERY" feature.
>>>
>>>Regards,
>>
>>To add to previous answers: (from Mike's Asherman code)
>>
>>
>>		* support user Escapes for interrupting query processing
>>		prevonesc = on('escape')			&& save previous Escape handler
>>		prevescape = set('escape')			&& previous Escape enablement state
>>		set escape on						&& enable escape handling
>>		querhalt = .f.						&& allow loop to run until this flag is toggled
>>		on escape querhalt = .t.			&& force immediate termination if user escapes
>>		SET TALK ON							&& yields VFP thermometer on slow SELECT - SQL queries
>>		
>>		* invoke output generation - multi-line, macro-expanded SELECT statement
>>		* NSL 10/23/01 Added the groupby clause
>>		&selectcmd1 ;
>>		  &selectcmd2 ;
>>		  &lcgroupbyexp ;
>>		  &nextdest
>>
>>* restore temp settings changed surrounding query
>>		set talk off						&& in case the next line would otherwise cause TALK output
>>		set talk &prevtalk					&& restore original verbosity setting
>>		on escape &prevonesc				&& restore previous Escape handler
>>		set escape &prevescape				&& restore previous Escape enablement
If it's not broken, fix it until it is.


My Blog
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform