数据库应用技术:Visual FoxPro 6.0
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.7 工作区的使用

在Visual FoxPro 6.0中使用多个表,就要使用多个工作区。所谓工作区就是在内存中为表独立开辟的存储空间。一个工作区只能打开一个表,多个工作区就可以同时打开多个表。Visual FoxPro 6.0系统提供了32767个工作区,一个工作区同一时刻只能打开一个表,但一个表可以在多个工作区同时打开,当前使用的工作区称为当前工作区。

系统为每个工作区规定了一个工作区号,分别是1~32767,其中1~10号工作区可以用别名A~J来表示。

2.7.1 选择工作区

每当启动Visual FoxPro 6.0后,系统默认的工作区是1号工作区,用户可以选择其他工作区。在系统菜单“窗口”中选择“数据工作期”命令,打开如图2-46所示的“数据工作期”窗口,当前系统默认的工作区是1号工作区。

图2-46 “数据工作期”窗口

例15】当前工作区已经打开“学籍”表(如图2-46所示),在另一工作区打开“成绩”表。

操作步骤如下:

在“数据工作期”窗口,单击“打开”按钮,打开“打开”对话框,如图2-47所示,选择要打开的“成绩”表,单击“确定”按钮,返回“数据工作期”窗口。这时表的别名出现在“别名”列表中。

图2-47 “打开”对话框

在“数据工作期”窗口的“别名”列表中,选择要浏览的表,单击“浏览”按钮,可以浏览当前工作区表中的记录;单击“关闭”按钮,则关闭当前工作区打开的表。

使用SELECT命令选择工作区,命令格式如下:

SELECT <工作区号> | <别名> | <0>

说明:

选择一个工作区为当前工作区。工作区号可以直接使用1~32767的数字;别名是打开表时指定的别名;<0>表示没有使用的最小区号的工作区成为当前工作区。

使用USE命令打开表的格式如下:

USE <表名> [ALIAS <别名>] [AGAIN]

说明:

打开表时如果不指定别名,系统默认表名就是它的别名。

AGAIN表示可以在不同工作区再次打开已经打开的表。如果使用不带AGAIN选项的USE命令在不同的工作区再次打开已经打开的表,系统将出现出错信息“文件正在使用”。

下面的例子是在不同工作区打开表:

   SELECT 1           &&选择1号工作区
   USE 学籍 ALIAS XJ  &&打开“学籍”表,别名为XJ
   SELECT C           &&选择3号工作区
   USE 成绩           &&打开“成绩”表
   SELECT 0           &&选择当前没有使用的最小工作区,即2号工作区
   USE 学籍 AGAIN     &&再次打开“学籍”表
   SELECT XJ          &&选择别名是XJ工作区,即1号工作区

2.7.2 多表的打开与关闭

1.打开多个表

在上面打开表的例子中,每打开一个表,需要使用SELECT命令选择一个工作区。Visual FoxPro 6.0中使用“数据工作期”窗口打开多个表时,系统自动分配最小未使用的工作区。另外使用命令方式还可以在当前工作区打开其他工作区表。命令格式如下:

USE <表名> IN <工作区号> | <别名> | <0>

说明:

在指定工作区号或别名打开指定的表,当前工作区不变。

例如:

   CLEAR ALL               &&清理系统内存,关闭打开的表
   USE 学籍 IN 2           &&在2号工作区打开“学籍”表
   USE 成绩 IN 5 ALIAS CJ  &&在5号工作区打开“成绩”表,别名为CJ

2.关闭多个表

当关闭打开的表时,可以使用SELECT命令和USE命令逐个关闭。例如:

   SELECT 5
   USE         &&关闭5号工作区中的表,当前工作区号是5号
   SELECT 2
   USE         &&关闭2号工作区中的表,当前工作区号是2号

另外也可以使用下面的命令逐个关闭打开的表。命令格式如下:

USE IN <工作区号> | <别名>

说明:

在当前工作区关闭其他工作区打开的表。

例如:

   USE 学籍 IN 2          &&在2号工作区打开“学籍”表
   USE 成绩 IN 5 ALIAS CJ &&在5号工作区打开“成绩”表,别名为CJ
   USE IN B               &&关闭2号工作区打开的“学籍”表
   USE IN CJ              &&关闭5号工作区别名是CJ的“成绩”表

如果要将各工作区打开的表全部关闭,可以使用CLOSE DATABASE ALL命令。

2.7.3 访问其他工作区

在当前工作区要访问其他工作区表中的数据,必须在非当前工作区字段名前加上<别名>,表示指定工作区的数据。访问命令格式如下:

<别名>-><字段名> 或 <别名>.<字段名>

例16】在第1工作区打开“学籍”表,在第3工作区打开“成绩”表,并同时显示“学籍”表中第2条记录的姓名、专业字段内容,“成绩”表中第2条记录的姓名、总分字段内容。

操作命令如下:

   USE 学籍 IN 1
   GO 2
   SELECT 3
   USE 成绩
   GO 2
   SELECT 1
   DISPLAY OF 姓名,专业,成绩->姓名,C.总分

屏幕显示:

   姓名   专业     成绩->姓名  C.总分
   李国华 国际商务 李国华       296.0