on error lnDS = lnDS - 1 >lnDS = MAX >for x = 1 to MAX > lcSetDS = "set datasession to " + str(x) > &lcSetDS >endfor >?lnDS>Though, its not very efficent. Consdier storing and restoring the error handler too.
private Halt m.halt=.f. local lcOldError, lcOldEsc, lcOldOnEsc, lnMax, i lcOldError=on('error') lcOldEsc=set('escape') lcOldOnEsc=on('escape') on error m.halt=.t. set escape on on escape m.halt=.t. lnMax=10 && Reasonable number of DS for i=1 to lnMax if m.halt wait window transform(i-1)+" last DS" exit endif set datasession to (i) next * Restore original settings on error &lcOldError on escape &lcOldOnEsc set escape &lcOldEsc