private querhalt * 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 select ... * 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 endtime = seconds() && stop query elapsed time computation on escape &prevonesc && restore previous Escape handler set escape &prevescape && restore previous Escape enablement this.EHP_TrapErrors = .f. && relinquish responsibility for err checking this.qryp_tally = _tally && hold on to the count of records selected this.QryP_Elapsed = m.endtime - m.starttime && elapsed time, in seconds