FOXBASE中几组命令的差异

Author: 9陈兴义 Date: 1995-05-26

        FOXBASE中命令比较多,如果与命令格式中的功能项子句进行组合,更会令人眼花缭乱。要记住这些命令,我们可采用对命令进行分组的办法,剖析各组命令的异同及特点,再结合上机练习,就可以较容易地记住它们。
        1.记录指针定位组Skip、Go命令
        记录指针所指记录称为当前记录。记录指针定位命令将指定操作对象,它的功能与高级语言和文字处理软件的光标一样。这两个命令的差异是:若库文件带有索引文件,Skip命令记录指针的移动按索引顺序进行。Skip命令在检索查询的应用程序中使用较多。
        2.输入记录组append和insert命令
        前者允许用户连续输入任意多个记录,后者执行一次仅可插入一个记录,且插入记录之后将使其后的每一个记录都要重写,频繁使用它将占用太多的机器时间,我们常用前者。
        3.修改记录组edit,change和browse命令
        前两个命令功能毫无差别。browse命令与它们的差别是,执行后可显示11个记录和尽可能多的字段,即可以在屏幕上显示多条记录提供给用户观察和修改,同时browse命令可用F10功能键或Ctrl+Home激活辅助菜单,与可选项配合进行对记录修改。很多书又把它叫做数据库浏览命令。
        4.删除记录组delete、pack和zap命令
        delete命令只对欲删除的记录作删除标记,真正删除记录要使用pack命令。用delete删除记录,在未执行pack前还可用recall命令恢复。因此,在删除记录时,我们常采用delete.若磁盘空间允许,我们常常保留作了删除标记的记录,到我们确实认为需要删除时才用pack命令删除它们。zap命令与Delete、Pack的差别是删除库文件中所有记录,只留下库文件结构,系统对此提供有一个保护措施,即在执行zap时提示用户是否真要删除全部记录,用户键入“N”可避免误操作造成数据丢失。
        5.显示记录、结构组display和list命令
        它们的最大差别是前者分屏显示后者连续显示;若缺少范围和其它选项,前者只显示当前记录。
        6.查询记录组locate、find和seek命令
        它们的差别是locate命令直接在数据库文件中查找,数据库文件不需要进行索引,若库文件中有多个满足条件的记录,可用continue命令继续查找,直到找出全部符合要求的记录。find和seek命令功能差不多,只是在查找内容上Seek允许日期型数据和出现表达式,比find显得更灵活。
        7.记录排序组sort和index命令
        它们的最大差别是sort命令排序后的文件仍是一个数据库文件,将占用大量存储空间且造成大量的数据冗余。index命令产生扩展名为.idx的索引文件,这也是find、seek命令比locate查找速度快的原因。
        8.变量定义组public 和private命令
        数据库的变量有两类,一类是字段变量,打开的库文件中的每一个字段都是一个字段变量,它们随库文件的关闭而消失,我们学过的BASIC语言中没有和它类似的变量。另一类是内存变量,它独立于数据库文件由用户定义并用于保存常数和运算结果,这与BASIC语言中的变量相似。public和private命令是定义内存变量的,它们所定义的内存变量分别被叫做全局变量和局部变量,学过pASCAL语言的同志很清楚,局部变量仅在定义它的范围及其子界内有效。在由多人合作编制较大的程序时,我们常常用private命令把变量定义为局部变量,它带给我们很多好处。
        9.统计组average,sum,count和totaL命令
        totaL命令与前三个命令的最大差异是它产生一个新的数据库文件,新文件的结构除不含备注字段外,其余和当前数据库文件完全相同;新文件的记录由当前数据库文件中〈关键字段〉值相同的记录合并而成,〈字段名清单〉中所列字段为每组记录的该字段值之和,其它字段取组之中第一个记录的该字段值。而前三个命令可能产生的只是内存变量。在使用
        total命令时特别注意要打开与之有关的索引文件,否则会产生错误结果。
        10.键盘输入组accept,wait,input命令
        input命令是我们的老朋友了,它与accept,wait的最大差别是它允许接收由键盘输入的多种数据类型,而accept和wait仅能接收字符型数据。值得一提的是,wait命令仅接收一个字符且备有“按任一键继续……”的提示信息,它常用在应用程序中需要询问用户并接收用户回答“Y”或“N”的地方,以及需要暂停屏幕显示以便用户阅读屏幕信息的地方。
        11.文件关闭组use,close,databases,quit命令
        这组命令形成一个递进的关系,use命令仅关闭当前工作区打开的数据库文件。close databases命令关闭所有工作区打开的数据库文件以及与其有关的索引文件和格式文件并回到工作区1。quit命令关闭所有文件退出FOXBASE返回操作系统状态。
        通过对以上命令的差异的分析,我们就可以比较容易地掌握它们,把握住它们各自的特点,更有利于我们灵活选择它们对数据库进行操作。