Update: Actually I am not sure whether ESC will interrupt the query if there is an ON ESCAPE. Perhaps you must use something like SET ESCAPE ON, but then I am not sure how to detect whether the command was actually interrupted.
>CANCEL doesn't interrupt the query - the query was already interrupted with the ESC key.
>
>You must just consider how you want to handle the interruption, for instance, tell the user that the query was interrupted and that the process can't continue:
>
>
>if llInterrupted
> MessageBox("The process was interrupted.")
> return
>endif
>
>
>
>>Is there any alternative command or technique instead of "cancel" command at the interrruptmessage procedure. Because "cancel" don't prevent the query it also quit the whole program. I want to cut only running query in case of necessity.
>>
>>Thanks in advance
>>
>>Altun
>>
>>
>>
>>cQryStr = "select * from customer where name like 'A%'"
>>cEscState = set("escape")
>>
>>set Escape on
>>ON ESCAPE DO interrruptmessage
>>&cQryStr
>>set Escape &cEscState
>>
>>
>>
>>*****
>>procedure interrruptmessage()
>>
>>if messagebox("To stop the query press 'OK', to continue press 'Cancel' button.", 1+32)=1
>> messagebox("Query cancelled", 0+16)
>> cancel
>> return .F.
>>else
>> wait window "Query is continuing." nowait
>>endif
>>return .F.
>>
>>ENDPROC
>>
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)