SELECT 0应用体验一则

Author: 彭禾 Date: 1995-06-23

        SELECT的参数取0,即选择序号最低的空闲工作区为当前工作区,不论其高位有无已启用的工作区。例如:已调用SELE 1、SELE 3、SELE 7,再执行SELE 0,以? SELE()显示当前工作区序号,返回值为2;重复使用SELE 0,当前工作区序号就相应地顺序上升,(逾越3)4、5、....(逾越7)....10,堪称方便。
        当工作区已全部使用,执行SELE 0势必失败,其出错信息:Cannot access selected database(序号1152)。虽然在正规情况下不致发生超额,但仍有必要采取措施防错,曾用ON ERROR法及限额法等,均欠简洁。后附行之有效、长仅九行的子程序SCLT-0.PRG,在必要的SELE 0命令行处代之以DO SLCT-0,也可径直将其前八行防错功能段写入应用程序中SELE 0命令行之前。
        ** SLCT-0.PRG **
        SLCT=10
        DO WHIL LEN(DBF(SLCT)#0
        SLCT=SLCT-1
        IF SLCT=0
        ? ' 工作区满额!'INKE(2)  &&出错信息
        RETU
        ENDI
        ENDD
        SELE 0  && 目的命令行
        (该程序在AST PP3-DOS 6.21 -2.13L-FOXBASE+2.1中通过)
        (彭禾)