VFP第3章数据管理与维护_多区操作.ppt

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VFP第3章数据管理与维护_多区操作

§3.4多工作区数据表的操作 在当前工作区打开一个表文件后,如果再打开第二个表文件,系统将自动先关闭第一个表文件后,再打开第二个表文件。这种操作称为“单表操作”。 在实际运用中,常常需要对两个或两个以上的表文件同时操作,这涉及到多表操作。多表操作是以工作区为基础的。 一.工作区与数据工作期 1.多工作区 ⑴工作区:系统为当前正在使用的数据表文件开辟的一个内存区域。 系统提供32767个工作区,每个工作区中的表都有自己的记录指针,各个工作区彼此独立,数据互不干扰。在任何时刻,操作对象只能占用一个工作区,这个工作区称“当前工作区”。 启动Visual FoxPro 后系统默认1号工作区为当前工作区。 ⑵别名:建立数据表文件时要为其命名,打开该表文件后,还可以为它另取一个别名。别名代表工作区号或表文件名。 系统约定前10个工作区的别名分别为:A、B、C、D、E、F、G、H、I、J。 利用命令USE 表文件名 ALIAS别名可以为表文件指定别名。 例:USE 学生? ALIAS XS ?XS是学生.DBF的别名 不指定别名,系统默认表文件的主名为别名。 例:USE 教师??? 教师也是教师.DBF的别名 在主工作区上访问其他工作区上的数据,或调用其它工作区中表文件字段时,必须使用别名调用格式以示区别。 别名调用格式:别名.字段名 或 别名-字段名 ⑶工作区命令 命令:SELECT工作区号|别名 SELECT 0 选择当前没有使用过的最小工作区号为当前工作区的区号。 函数SELECT(?)返回当前工作区的区号。 例:工作区、别名示例 CLOSE ALL ????? ?SELECT( ) ???显示:1?? USE 学生????? ? SELECT 2 USE 教师?????? DISP A.姓名,A.性别,姓名?? ? SELECT 0 USE 课程 DISP A.姓名,A.性别,B.姓名,C.课程名 二.多表的间的关系 ?1.关联的概念 在单表操作下,各个工作区表文件的记录指针彼此独立,互不影响。 关联是在两个表文件的记录指针之间建立一种关系,当一个表的记录指针移动时,与之关联的另一个表的记录指针也随之作相应的移动。 2.关联条件 建立关联的两个表,一个父表,一个是子表。 首先为子表按关键字建立索引,当父表的记录指针移动时,子表的记录指针自动移动到满足关联条件的记录上。 3.利用命令建立关联 命令:SET RELATION TO[关联表达式1]INTO别名1[[,关联表达式2]INTO别名2,……]][ADDITIVE] 功能:当前表为父表与一个或多个子表建立关联。 ⑴被关联表的字段必须预先索引。 ⑵选择ADDITIVE,保留先前已建立的关联,再建立新关联。否则,新关联将取消以前建立的关联。 ⑶不带任何参数的SET RELATION TO 取消当前父表与子表的关联。 例:利用学生.DBF、选课.DBF、课程.DBF显示学生选课的课程名与该课程的成绩。 分析:学生.DBF与选课.DBF通过学号建立关联,课程.DBF与选课.DBF通过课程号建立关联。选课表作主表,在建立第二个关联时,保留第一个关联。 例:利用GZ1.DBF、GZ2.DBF、GZ3.DBF三个表文件,计算GZ3.DBF中的课时费和工资总额。(课时费=课时*40,工资总额=基本工资+课时费)。 三.表间的连接 表文件之间的连接称为物理连接。物理连接是将两个表的相关字段组合构成一个新表。 命令:JOIN WITH别名TO新表文件名FOR条件[FIELDS字段名表] ⑴被连接的两个表文件,一个是当前表,另一个是在<别名>中指定的工作区表。 ⑵FOR条件是必选项,它是构成连接的条件。 例:由表TU-1.DBF和TU-2.DBF,生成表TU-3.DBF,表内容为:书名,出版社,单价,册数,金额。 SELECT 1 USE 学生 INDEX ON 学号 TAG xh SELECT 2 USE 课程 INDEX ON 课程号 TAG ckh SELECT 3 USE 选课?????????? 选课.DBF为父表 SET RELATION TO 学号 INTO A? SET RELATION TO 课程号 INTO B ADDITIVE BROWSE FIELDS A.姓名,B.课程名,成绩 SELE 1 USE GZ1 INDEX ON 姓名 TAG XM1 SELE 2 USE GZ2 INDEX ON 教师号 TAG JS2 SELE 3 USE GZ3 SET RELATION TO 教师号 INTO B; REPLACE ALL 课时费 WITH B.课时数*40 LIST OFF SET RELAT

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档