14 多表的操作
迄今所讲述的对表的操作都是在一个工作区进行的,每个工作区最多只能打开一个表文件,用USE命令打开一个新的表,同时也就关闭了前面已打开的表。在实际应用中,用户常常需要同时打开多个表文件,以便对多个表文件的数据进行操作。为了解决这一问题,VisualFoxPro引入了工作区的概念。Visual FoxPro允许用户在表间建立临时关系和永久关系。
15 工作区与多个表
(1).工作区和当前工作区
Visual FoxPro 能同时提供32767个工作区。系统默认值为1区。在任意时刻,只有一个工作区是当前工作区,用户只能在当前工作区对打开的当前库进行操作。
每一个工作区都可以并且只能打开一个数据库文件。
同一个数据库文件不允许同时在多个工作区打开,但在其它工作区中被关闭之后,可以在任意一个工作区中被打开。
各工作区中打开的数据库彼此相互独立(指针不受影响)。
(2).选择当前工作区
每一个工作区用工作区号或别名来标识
1)工作区号
利用数字1~32767来标识32767个不同的工作区
2)别名
前10工作区用A~J10个字母来标识。
采用该工作区中已打开的数据库的库名来作别名
用户自己定义
【命令格式】 :USE 〈数据库名〉[ALIAS〈别名〉]
【功能】 :打开数据库文件并为该数据库起一个别名。
【说明】给数据库起了别名后,数据库名就不是默认的别名了。
3)工作区的选择
当系统启动时,1号工作区是当前工作区,若想改变当前工作区,则可使用SELECT命令来转换当前工作区。
【命令格式】:SELECT<工作区号>/<工作区别名>
【功能】:选择一个工作区作为当前工作区。
【说明】:
.... <工作区号> | <工作区别名>:指定当前工作区。选择工作区时,可以直接指定区号,也可以通过别名指定工作区,二者是等效的。
.... 别名可以是系统规定的别名,也可以是用户规定的别名,甚至可以用已打开的表名替代工作区别名。此命令允许选用“0”号工作区。如果指定“0”,则表示选用当前未使用过的编号最小的工作区作为当前工作区。
.... 执行该命令后,对任何工作区中的表及记录指针均不发生影响,仅实现各个工作区之间切换。
【例1】在1号和2号工作区内分别打开ST.DBF和SE.DBF表文件,并选择1号工作区为当前工作区。
SELECT 1 && 或 SELECT A
USE ST
SELECT 2
USE SE
SELECT 1
【例2】在1 号和2 号工作区打开STUD.DBF 和SC.DBF,在1 号工作区内查看当前记录的学号、姓名、性别、出生日期、课程号、成绩等字段内容。
SELECT A
USE STUD && 在一号工作区中打开STUD
SELECT B
USE SC && 在二号工作区中打开SC
SELECT A && 选择1 号工作区为当前工作区
DISPLAY 学号,姓名,性别,出生日期,B->课程号,SC.成绩
....