• 沒有找到結果。

Visual FoxPro程序设计(第二版) - 万水书苑-出版资源网

N/A
N/A
Protected

Academic year: 2021

Share "Visual FoxPro程序设计(第二版) - 万水书苑-出版资源网"

Copied!
33
0
0

加載中.... (立即查看全文)

全文

(1)

第 1 章 Visual FoxPro 6.0 概述

学习目的: 通过学习本章内容,使学生了解数据库的基础知识,掌握关系数据库以及数据库语言的 基本概念和知识, 对数据库语言及程序设计的思路有一定的基本了解, 学习掌握 Visual FoxPro  的基本使用方法,为后续章节奠定基础。 知识要点: l 数据、数据库、数据库管理系统、数据库系统、数据库应用系统等基本概念 l 数据库、数据库系统、数据库管理系统的关系 l 关系模型、关系的概念和特点 l 关系运算:选择、投影、连接 l 熟悉 Visual FoxPro 6.0 集成开发环境,了解 Visual FoxPro 6.0 的工作方式 

1.1 数据库基础知识

1.1.1 计算机数据管理的发展  1.数据、信息以及数据处理 (1)数据(Data)是指存储在某种媒体上能够被识别的物理符号。数据的表现形式不仅 有数字、字母、文字和其他特殊字符组成的文本形式,还包括图像、图形、声音、动画等数据 形式,但使用最多的仍是文本数据。在计算机中,数据是以二进制形式存储的。数据概念的两 个方面:一是数据内容的不变性;二是数据形式的多样性。例如:日期的表示形式为“2013  年 8 月 8 日” ,也可以表示为“2013­08­08”或“08/08/13” 。 (2)信息(Information)是指数据经过加工处理后人们所获取的有用知识。 数据和信息的区别:信息是抽象的、观念性的,数据是具体的、物理性的;信息的形式 单一, 而数据的形式可以多种多样; 数据是信息的具体表示形式, 信息必须通过数据才能传播。 (3)数据处理也称为信息处理,是指将数据转换成信息的过程,包括对各种数据的收集、 存储、加工、分类、排序、检索、传播等一系列活动。其目的是从大量的原始数据中抽取和推 导出有价值的信息,作为行动和决策的依据。例如:学生考试的各科成绩为原始数据,可以经 过计算提取出平均成绩和总成绩等有效信息,计算过程可以看做为数据处理。  2.数据管理技术的发展 利用计算机进行数据处理,数据处理的中心问题就是数据管理,数据管理指的是对数据 进行分类、组织、编码、检索和维护的过程。计算机数据管理技术经历了由低级到高级的发展 过程,通常将数据管理分为 3 个发展阶段:人工管理阶段、文件系统阶段、数据库系统阶段。 (1)人工管理阶段。

(2)

20 世纪 50 年代中期以前,数据处理都是通过手工进行的,数据管理处于人工管理阶段。 在这一阶段,计算机的硬件与软件方面都有很大的局限性。在硬件方面,外存储器只有卡片、 纸带、磁带,没有像磁盘这样的可以随机访问、直接存取的外部存储设备。在软件方面,没有 专门管理数据的软件,数据由计算机或处理它的程序自行携带。数据管理任务包括存储结构、 存取方法、输入输出方式等,完全由程序设计人员自负其责。如图 1­1 所示。 图 1­1  人工管理阶段中的程序与数据 人工管理阶段数据处理的特点: l 数据量较少。数据和程序一一对应,即一组数据对应一个程序,数据面向应用,独立 性很差。由于应用程序所处理的数据之间可能会有一定的关系,有很多重复数据,造 成数据冗余。 l 数据不保存。因为在该阶段计算机主要用于科学计算,一般不需要将数据长期保存, 只在计算一个题目时,将数据输入计算机,得到计算结果即可。 l 数据缺少系统软件管理。 程序员不仅要规定数据的逻辑结构, 而且在程序中还要设计 物理结构,包括存储结构的存取方法、输入输出方式等。也就是说数据对程序不具有 独立性,一旦数据在存储器上改变物理地址,就需要相应地改变用户程序。 (2)文件管理阶段。  20 世纪 50 年代后期到 60 年代,计算机的硬件和软件得到飞速发展,计算机不再只用于 科学计算这项单一任务,而且还可以做一些非数值数据的处理。此外,这时也有了大容量的磁 盘等存储设备,并且已经有了专门管理数据的软件,即文件系统。在文件系统中,按一定的规 则将数据组织成为一个文件, 应用程序通过文件系统对文件中的数据进行存取和加工。 文件系 统对数据的管理,实际上是通过应用程序和数据之间的一种接口实现的,如图 1­2 所示。 图 1­2  文件系统阶段中的程序与数据 文件管理阶段数据处理的特点: l 程序和数据有了一定的独立性,程序和数据分开存储,有了程序和数据文件的区别。 l 数据和应用程序独立性差。 尽管数据以文件方式独立存放, 但是文件系统中的数据文 件是为了满足特定业务领域, 应用程序和数据相互依赖, 数据文件离开了使用它的应 应用程序 1  应用程序 2  应用程序 n  数据组 1  数据组 2  数据组 n  应用程序 1  应用程序 2  应用程序 n  数据组 1  数据组 2  数据组 n  文件 系统

(3)

用程序便失去了使用价值。 l 不同的应用程序建立各自的数据文件, 同一数据文件存放在不同的数据文件中, 不能 相互共享,造成了数据冗余,不仅浪费存储空间,而且不能保证数据的一致性。 l 应用程序所需的数据分散在各文件中, 无集中管理机制, 缺乏对数据操作的控制方法, 无法保证安全性和完整性。 (3)数据库系统阶段。  20 世纪 60 年代后期开始,需要计算机管理的数据急剧增长,并且对数据共享的需求日益 增强。文件系统的数据管理方法已无法适应系统的需要,为了实现对数据的统一管理,达到数 据共享的目的,数据库技术进一步发展了。 数据库也是以文件方式存储数据的,但它是数据的一种高级组织形式,数据库系统的目 标是解决数据冗余问题, 实现数据独立性, 实现数据共享并解决由于数据共享而带来的数据完 整性、安全性及并发控制等一系列问题。为实现这一目标,在应用程序与数据库之间,由数据 库管理系统 DBMS(DataBase Management System)来控制,数据库管理系统是为数据库的建 立、使用和维护而配置的软件,它是在操作系统支持下运行的。数据库管理系统对数据的处理 方式和文件系统不同, 它把所有应用程序中使用的数据汇集在一起, 并以记录为单位存储起来, 以便应用程序查询和使用。 数据库系统阶段数据处理的特点: l 数据结构化。 数据的结构化是数据库系统的主要特征之一, 这是数据库与文件系统的 根本区别。结构化是如何实现的,则与数据库系统采用的数据模型有关。 l 数据共享性高,冗余度小,易扩充。数据库是从整体的观点来看待和描述数据的, 数据不再是面向某一应用,而是面向整个系统。这样就减小了数据的冗余,节约存 储空间,缩短存取时间,避免数据之间的不相容和不一致。对数据库的应用可以很 灵活,面向不同的应用,存取相应的数据库的子集。当应用需求改变或增加时,只 要重新选择数据子集或者加上一部分数据,便可以满足更多更新的要求,这就是系 统的易扩充性。 l 数据独立性高。 数据库提供数据的存储结构与逻辑结构之间的映像或转换功能, 使得 当数据的物理存储结构改变时,数据的逻辑结构可以不变,从而程序也不用改变。 l 统一的数据管理和控制功能, 包括数据的安全性控制、 数据的完整性控制及并发控制、 数据库恢复。数据库是多用户共享的数据资源,对数据库的使用经常是并发的。为保 证数据的安全可靠和正确有效,数据库管理系统必须提供一定的功能来保证。 l 数据库的安全性。指防止非法用户的非法使用数据库而提供的保护。比如,不是学校 的成员不允许使用学生管理系统,学生允许读取成绩但不允许修改成绩等。 l 数据的完整性。 指数据的正确性和兼容性。 数据库管理系统必须保证数据库的数据满 足规定的约束条件,常见的有对数据值的约束条件。 l 数据的并发控制是多用户共享数据库必须解决的问题。 由于数据库的这些特点,它的出现使信息系统的研制从围绕加工数据的程序为中心转变 到围绕共享的数据库来进行,便于数据的集中管理,提高了程序设计和维护的效率,也提高了 数据的利用率和可靠性。当今的大型信息管理系统均是以数据库为核心。  Visual  FoxPro  就是一种数据库管理系统软件,在数据库管理系统的支持下,数据与程序 的关系如图 1­3 所示。

(4)

图 1­3  数据库系统中数据与程序的关系 数据库技术不断发展,涌现出许多不同类型的新型数据库系统: l 分布式数据库系统阶段。 分布式数据库的研究始于  20  世纪  70 年代中期,随着传统的数据库技术日趋成熟、计算 机网络技术的飞速发展和应用范围的扩大, 以分布式为主要特征的数据库系统的研究与开发受 到人们的注意。分布式数据库是数据库技术与网络技术相结合的产物,是逻辑上统一、地域上 分布的数据集合, 是计算机网络环境中各个节点局部数据库的逻辑集合, 同时受分布式数据库 管理系统的控制和管理。 l 面向对象数据库系统阶段。 面向对象数据库系统是 20  世纪  80  年代引入计算机科学领域的一种新的程序设计技术, 它是将先进的数据库技术与面向对象的程序设计有机地结合而形成的新型数据库系统。 面向对 象数据库系统的主要特点是具有面向对象技术的封装性和继承性,提高了软件的可重用性。 l 多媒体数据库系统。 多媒体数据库是数据库技术与多媒体技术结合的产物。多媒体数据库不是对现有的数据 进行界面上的包装, 而是从多媒体数据与信息本身的特性出发, 考虑将其引入到数据库中之后 而带来的有关问题。 多媒体数据库从本质上来说, 要解决三个难题: 第一是信息媒体的多样化, 不仅仅是数值数据和字符数据,要扩大到多媒体数据的存储、组织、使用和管理;第二要解决 多媒体数据集成或表现集成,实现多媒体数据之间的交叉调用和融合,集成度越细,多媒体一 体化表现才越强,应用的价值也才越大;第三是多媒体数据与人之间的交互性。  1.1.2 数据库系统 数据库系统(DatabaseSystem,DBS)是指引进数据库技术后的计算机系统。它实质上是 由有组织地、 动态地存储的有密切联系的数据集合及对其进行统一管理的计算机软件和硬件资 源所组成的系统。这类系统主要由五部分组成:硬件系统、以数据为主体的数据库、数据库管 理系统、数据库应用系统、用户等部分组成。数据库系统结构如图 1­4 所示。  1.数据库(Database,DB) 数据库就是存储数据的仓库。具体而言是按一定的数据模型组织、描述和存储的有组织、 可共享的数据的集合,是数据库系统的重要组成部分。它不仅包括描述事物的数据本身,而且 还包括相关事物之间的联系。数据库具有数据结构化、数据独立性、数据安全性、数据冗余度 小、数据共享等特点。  2.数据库管理系统(Database Management System,DBMS) 数据库管理系统是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,为 用户或应用程序提供访问数据库的方法,包括数据库的建立、查询、更新以及各种数据控制。 数据库管理系统是数据库系统的核心部分,其主要功能如下: 应用程序 1  应用程序 2  应用程序 n

(5)

图 1­4  数据库系统结构图 (1)定义功能:DBMS 提供数据定义语言(Data Definition Language,DDL),用户通过 它可以方便地对数据库中的数据对象进行定义,包括定义数据的完整性、安全控制等约束;在 关系数据库中对数据库、基本表、视图和索引等进行定义。 (2) 数据操作功能: DBMS 向用户提供数据操纵语言 (Data Manipulation Language, DML), 用户可以实现对数据库中数据的操作。基本的数据操作分为两类四种:对数据库中的检索(查 询)和更新(插入、删除和修改) 。 (3)数据库的运行管理:这是 DBMS 的核心部分,也是 DBMS 对数据库的保护功能。 包括并发控制、安全性检查、完整性约束条件的检查和执行、数据库的内部维护等。所有数据 库的操作都要在这些控制程序的统一管理、统一控制下进行,从而保证数据库的安全性、完整 性、多用户对数据的并发使用以及发生故障后的系统恢复。 (4)数据库的监视和维护功能:包括数据库原始数据的输入、转换功能,数据库的转储、 恢复功能,数据库的重新组织功能和监视、分析功能等。这些功能通常是由数据库管理员操作  DBMS 的许多实用程序来实现的。 目前最为流行的大型数据库管理系统有 Oracle、 SQL Server 与 Sybase, 这些系统也有微机 版本,专门在微机上运行的数据库管理系统有 Visual FoxPro、Access 与 Delphi 等。  3.数据库应用系统(Database Application System,DBAS) 数据应用系统是指系统开发人员利用数据库系统资源开发出来的,面向某一类实际应用 的软件系统。 一个数据库应用系统通常由数据库和应用程序两部分组成, 它们是在数据库管理 系统支持下设计和开发出来的。主要分为两大类: (1)管理信息系统。 例如,教学管理系统、图书管理系统、学生管理系统、财务管理系统、生产管理系统等, 它们是面向机构内部业务和管理的数据库应用系统。 (2)开放式信息服务系统。 例如,大型综合的科技情报系统、经济信息和专业的证券实时行情、商品信息等。他们 是面向外部、能够提供动态信息查询功能,以满足用户的不同信息需求的数据库应用系统。

(6)

4.计算机硬件 计算机硬件是数据库系统赖以存在的物质基础,是存储数据库及运行数据库管理系统  DBMS 的硬件资源,主要包括主机、存储设备、I/O 通道等。大型数据库系统一般都建立在计 算机网络环境下。 为使数据库系统获得较满意的运行效果,应对计算机的 CPU、内存、磁盘、I/O 通道等技 术性能指标,采用较高的配置。  5.用户 用户是指使用数据库系统的人员。数据库系统中的用户主要有终端用户、应用程序员和 管理员三类。 终端用户是指计算机知识不多的工程技术人员及管理人员,他们只能通过数据库系统所 提供的命令语言、表格语言以及菜单等交互对话手段使用数据库中的数据。 应用程序员是指为终端用户编写应用程序的软件人员,他们设计的应用程序主要用途是 使用和维护数据库。 数据库管理员(Database Administrator,DBA)是指全面负责数据库系统正常运转的高级 人员,他们负责对数据库系统本身的深入研究。 

1.2 数据模型

1.2.1 相关概念 现实世界存在各种事物,事物与事物之间存在着联系。这种联系是客观存在的,是由事 物本身的性质所决定的。  1.实体(Entity) 客观存在并且可以互相区别的事物称为实体。实体可以是具体的实际事物,如学生、老 师、教科书;也可以是抽象的事件,如选课、比赛等。  2.实体的属性(Attribute) 实体具有的特性称为属性。属性用型(type)和值(value)来表征,例如学号、姓名、年 龄是属性的类型,而具体的值(0113016)、陈辰、18  等则是属性值。每个属性都有一个值域 (domain),值域的类型可以是整数、实数或字符,例如学生的姓名、年龄都是学生这个实体 的属性,姓名的类型为字符型、年龄的类型为整型。  3.实体型 用实体名及描述它的各属性值可以表示一种实体的类型,称为实体型。如学生实体,其 型的描述为“学生(学号,姓名,年龄) ” 。  4.实体集(Entity Set) 同类型的实体的集合称为实体集,如一个班的所有学生、一批书籍等。 在 Visual FoxPro 6.0 中,用“表”来存放同一类实体,即实体集。例如:学生(student) 表,表中包含若干个字段,就是实体的属性,字段值的集合组成了一条记录,代表一个具体的 实体,即每一条记录表示一个实体。

(7)

1.2.2 实体之间的联系 实体之间的对应关系称为联系,它反映现实世界事物之间的相互关联。例如:一名教师 可以教多个班级。常见的实体之间的联系有以下三种类型(设 A 和 B 是两个实体):  1.一对一联系(one­to­one relationship)记作 1:1  如果 A 中的任一属性至多对应 B 中的唯一属性, 且 B 中的任一属性至多对应 A 中的唯一 属性,则称 A 与 B 是一对一。例如:电影院中观众与座位之间、乘车旅客与车票之间、病人 与病床之间等都是一对一联系。  2.一对多联系(one­to­many relationship)记作 1:n  如果 A 中至少有一个属性对应 B 中一个以上的属性, 且 B 中任一属性至少对应 A 中的一 个属性,则称 A 对 B 是一对多联系。例如:学校对系,班级对学生等都是一对多联系。  3.多对多联系(one­to­many relationship)记作 m:n  如果 A 中至少有一个属性对应 B 中一个以上属性, 且 B 中也至少有一个属性对应 A 中一 个以上属性,则称 A 与 B 是多对多联系。例如:学生与课程、工厂与产品、商店与顾客等都 是多对多联系。 上述  3  种联系是实体之间的基本联系,原则上,许多实体之间的复杂联系都可用若干组 基本联系等价地表示。  1.2.3 数据模型的分类 数据库中的数据是有结构的,这些结构反映了事物与事物之间的联系,对这种结构的描述 就是数据模型。数据模型是数据库管理系统用来表示实体及实体之间联系的方法。数据库设计 的核心问题之一就是设计一个好的数据模型。数据库管理系统中常用的数据模型有如下 4 种:  1.层次模型(Hierarchical Model) 数据的层次模型使用树状结构来表示实体的类型和实体间的联系,层次模型像一棵倒置 的树,根结点在上,层次最高,子结点在下,逐层排列。它具有如下特点: (1)有且仅有一个根结点无双亲。 (2)根结点以外的子结点向上有且仅有一个父结点,向下有若干子结点。 如某大学各机构的层次模型如图 1­5 所示。 图 1­5  层次模型事例  2.网状模型(Network Model) 网状模型是层次模型的拓展,广义上讲,任意一个连通的基本层次联系的集合就是个网 状模型。 网中的每一个结点表示一个实体类型。 它能够表示实体间的多种复杂联系和实体类型 之间的多对多联系。它具有如下特点:

(8)

(1)有一个以上结点无双亲。 (2)至少有一个结点多于一个双亲。 如某时刻几个城市之间火车班次的网络如图 1­6 所示。 图 1­6  网状模式事例  3.关系模型(Relational Model) 关系模型是用二维表结构来表示实体与实体之间联系的模型。在关系模型中,操作的对 象和结果都是二维表,这种二维表就是关系。在二维表中,每一行称为一个记录,用于表示一 组数据项,表中的每一列称为一个字段或属性,用于表示每列中的数据项,表中的第一行称为 字段名,用于表示每个字段的名称。关系模型具有如下优点: (1)描述单一。在关系模型中,每个关系是用一张表格来描述的,字段、记录描述的都 很清楚,更重要的是可用关系的性质来衡量关系。 (2)关系规范化。每一个分量是一个不可分的数据项,即不允许表中有表。 支持关系模型的数据库管理系统称为关系数据库管理系统,Visual  FoxPro  系统就是一种 关系数据库管理系统。如一个名为“学生”的关系如图 1­7 所示。 图 1­7  关系模型事例  4.面向对象模型 面向对象的数据模型是面向对象技术与数据库技术相结合的产物。完全面向对象的数据 库管理系统目前并没有完全成熟。 

1.3 关系数据库

1.3.1 关系概述  1.关系的基本概念 (1)关系:一个关系就是一张二维表。通常将一个没有重复行也没有重复列的二维表称

(9)

为一个关系,每个关系有一个关系名。在 Visual  FoxPro 中,一个关系就称为一个数据表。每 个关系用一个文件来存储,扩展名为.DBF。例如,图 1­7“学生”表代表了一个关系,关系名 为“学生” 。 (2)元组:在一个二维表(一个关系)中,水平方向的行称为元组,每一行是一个元组。 元组对应存储文件中的一个具体记录。例如,图 1­7 中包括 10 条记录(或 10 个元组)。 (3)属性:二维表中垂直方向的列称为属性,每个属性都有一个属性名。一列是一个属 性,在 Visual  FoxPro 中一列也称为一个字段,一个属性对应表中一个字段,属性名对应字段 名。每个字段的数据类型、宽度等在创建表的结构时规定。例如:学生表中的学号、姓名、性 别等字段名及其相应的数据类型组成表的结构。 (4)域:属性的取值范围,即不同元组对同一个属性的取值所限定的范围。例如,性别 只能从“男” 、 “女”两个汉字中取一;成绩要求在 0~100 分之间,这些都称为属性的域。 (5)主关键字:关系中能唯一区分、确定不同元组(记录)的属性或属性组合,称为该 关系的一个主关键字。 单个属性组成的关键字称为单关键字, 多个属性组合的关键字称为组合 关键字。需要强调的是,关键字的属性值不能取“空值” ,所谓空值就是“不知道”或“不确 定”的值,因而无法唯一地区分、确定元组。 例如,观察学生表和成绩表中的数据,在学生表中, “学号”字段可以唯一地标识一个元 组(记录),因此称“学号”字段是学生表的主关键字(或单关键字);而在成绩表中“学号” 字段却不能够唯一地标识一个元组(记录),只有当“学号”与“课程号”结合在一起才能唯 一地标识一个元组(记录),因此,称“学号+课程号”是成绩表的主关键字(或组合关键字) , 如图 1­8 和图 1­9 所示。 图 1­8  学生表 图 1­9  成绩表 (6)候选关键字:关系中能够成为关键字的属性或属性组合。凡在关系中能够唯一区分、 确定不同元组的属性或属性组合,称为关键字,选出一个作为主关键字,那么剩下的就是候选 关键字。 (7)外部关键字:如果表中的一个字段不是本表的主关键字或候选关键字,而是另外一 个表的主关键字或候选关键字,这个字段(属性)就称为外部关键字。关系之间的联系是通过 外部关键字实现的,如图 1­10 所示。  2.关系的性质 关系模型看起来简单,但是并不能把日常手工管理所用的各种表格,按照一张表一个关 系直接存放到数据库系统中。在关系模型中对关系有一定的要求,关系必须具有以下特点: (1)关系必须规范化。所谓规范化是指关系模型中的一个关系模式都必须满足一定的要 求。最基本的要求是每个属性必须是不可分割的数据单元,即表中不能再包含表。

(10)

图 1­10  由外部关键字建立表与表之间的联系 (2)在同一个关系中不能出现相同的属性名,Visual FoxPro 不允许同一个表中有相同的 字段名。 (3)关系中不允许有完全相同的元组,即无冗余。 (4)在一个关系中元组的次序无关紧要。也就是说,任意交换两行的位置并不影响数据 的实际含义。 (5)在一个关系中列的次序无关紧要。任意交换两列的位置也不影响数据的实际含义。 例如,学生表中“姓名”与“性别”哪一项在前面并不重要,重要的是实际数值。  1.3.2 关系模式 关系模式:对关系的描述称为关系模式。一个关系模式对应一个关系的结构,其格式为: 关系名(属性名 1,属性名 2,…,属性名 n) 在 Visual FoxPro 中表示为表结构: 表名(字段名 1,字段名 2,……,字段名 n) 例如,图 1­7 学生表的对应关系,其关系模式可以表示为: 学生(学号,姓名,性别,出生日期,家庭地址,所属院系,备注)  1.3.3 关系运算 关系数据库进行查询时,要查到用户需要的数据,这就需要对关系进行一定的关系运算。 关系的基本运算有两类:一类是专门的关系运算(选择、投影、连接等),另一类是传统的集 合运算(并、差、交等)。  1.专门的关系运算 在 Visual FoxPro 中,查询是高度非过程化的,用户只需明确地提出“做什么” ,而不用指 出“怎么做” 。系统将自动对查询过程进行优化,可以实现对多个相关联的表的高速存取。然 而, 要正确表示较复杂的查询并非是一件简单的事, 当我们了解了专门的关系运算则有助于正 确给出查询表达式。 (1)选择:选择运算是指从关系中找出满足条件的记录的操作。选择运算是从行的角度 进行运算,即从水平方向抽取记录。 在 Visual FoxPro  中,选择运算时从表中选取若干个记录的操作,可以通过命令中的 FOR  子句或设置数据筛选实现选择运算。 例如,从图 1­8 学生表中查找家庭住址为哈尔滨的学生记录,解决这个问题可以使用选择 运算来完成,结果如图 1­11 所示。 (2)投影:投影运算是从关系中选取若干属性(字段)组成新的关系。投影运算是从列 的角度进行运算,相当于对关系进行垂直分解。投影运算可以得到一个新的关系,其关系模式

(11)

所包含的属性个数往往比原关系少,或属性的排列顺序不同。 图 1­11  选择运算结果 在 Visual  FoxPro 中,投影运算是在表中选取若干个字段的操作,通过命令 FIELDS 子句 或设置允许访问的字段实现投影运算。 例如,从图 1­8 学生表中查找各个学生姓名对应的所属院系。解决这个问题可以使用投影 操作,查找结果如图 1­12 所示。 图 1­12  投影运算结果 (3)连接:连接运算是关系的横向结合。连接运算将两个关系模式拼接成一个更宽的关 系模式,生成的新关系中包含满足连接条件的记录。在 Visual FoxPro  中连接运算时通过 JOIN  命令或 SELECT­SQL 来实现。 等值连接:在连接运算中,按照字段值对应相等为条件进行的连接操作。 自然连接:是指去掉重复属性的等值连接。自然连接是最常用的连接运算。  2.传统的集合运算 用来进行并、差、交集合运算的两个关系必须具有相同的关系模式,即有相同结构。 (1)并(R∪S) 。 具有相同结构的两个关系的并运算是由这两个关系的所有元组构成的集合。并运算的结 果是一个关系,它包括或者在 R 中、或者在 S 中、或者同时在 R 和 S 中的所有元组。关系 R、  S 如表 1­1 和表 1­2 所示, (R∪S)如图 1­3 所示。 表 1­1  关系 R  表 1­2  关系 S  表 1­3  (R∪S) 

A  B  C  A  B  C  A  B  C 

1  a  c  4  b  c  1  a  c 

2  b  a  2  b  a  2  b  a 

3  c  b  3  a  b  3  c  b 

4  b  c 

3  a  b 

(12)

具有相同结构的两个关系 R 和 S,R 与 S 的差是由属于 R 但不属于 S 的元组成的集合, 即差运算的结果是从 R 中去掉 S 中也有的元组。R­S 如表 1­4 表示。 (3)交(R∩S) 。 具有相同结构的两个关系 R 和 S,R 与 S 的交是由既属于 R 又属于 S 的元组组成的集合。 交运算的结果是一个关系,包括既在 R 中又在 S 中的所有元组。 (R∩S)如表 1­5 所示。 表 1­4(R­S) 表 1­5  (R∩S)  A  B  C  A  B  C  1  a  c  2  b  a  3  c  b 

1.4  Visual FoxPro 6.0 系统概述

根据不同的数据模型可以开发出不同的数据库管理系统,基于关系模型开发的数据库管 理系统属于关系数据库系统。Visual  FoxPro  6.0(简称 VF6)就是以关系模型为基础的关系数 据库系统。  1.4.1    Visual FoxPro 的发展历程  1.Visual FoxPro 的发展历史  1989  年,FOX  软件公司开发了  FoxBASE+的后继产品——FoxPro,但其早期版本(1.0  版与 2.0 版)仍是在 DOS 平台上运行的。1992 年美国微软件公司收购了 FOX 公司,第二年就 推出了 FoxPro  for  Windows  (2.5 版),使微机关系数据库系统由基于字符界面演变到基于图形 用户界面。随着这一界面的改进,FoxPro 出现了下列重要变化: (1)支持界面操作。 与其他 Windows 应用软件一样,FoxPro 大量使用菜单、对话框等人机交互工具,使不懂  FoxPro 命令的用户也能方便地使用数据库。 (2)启用程序设计辅助工具。 随着 Windows 平台的流行,应用程序的界面也变得复杂起来。用传统的窗口命令或菜单 命令,以手工方法来编制具有 Windows 风格的界面,会耗费用户大量的精力与时间。为此,  FoxPro  的后期版本都提供了一些辅助工具,使用户通过交互方式来生成所需的界面与程序代 码。这不仅大大简化了编程,也为后来的可视化程序设计打下了基础。  1995 年,微软公司首次将可视化程序设计(Visual Programming)引入了 FoxPro,并将其 新版本取名为 Visual FoxPro 3.0,简称 VFP 3.0。与 FoxPro 相比,Visual FoxPro 的改进主要表 现在: ①继续强化界面操作,把传统的命令执行方式扩充为界面操作为主、命令方式为辅的交 互执行方式,大量使用向导、设计器等界面操作工具,充分体现了它们直观、易用的特点。 ②将面向对象程序设计(Object­oriented  Programming)的思想与方法引入 FoxPro,把单 一的面向过程的结构化程序设计扩充为既有结构化设计、 又有面向对象程序设计的可视化程序 设计,大大减轻了编写应用程序代码的工具。

(13)

为了适应 Windows 操作系统的升级(16 位的 Windows 3.x 升级为 32 位的 Windows 95 与  Windows  NT)FoxPro 的处理单元也从 FoxPro 的 16 位改成 32 位,从而处理速度、运算能力 和存储能力上都提高了许多倍。到 1998 年,FoxPro 推出了 6.0 版。  2.Visual FoxPro 的基本功能 作为一种数据库软件,Visual FoxPro 可以完成下列基本功能: l 为第一种类型的信息创建一个表,用于存储相应的信息。 l 定义各个表之间的关系,从而很容易地将与各个表相关的数据有机地联系在一起。 l 创建查询搜索所有满足指定条件的记录,也可以根据需要对这些记录进行排序和分 组,并根据查询结果创建报表、表及图形。 l 使用视图可以从一个或多个相关联的表中按一定条件抽取一系列数据, 并可以通过视 图更新这些表中的数据,还可以使用视图从网上获得数据,从而修改远程数据。 l 创建表单来直接查看和管理表中的数据。 创建一个报表来分析数据或将数据以特定的方式打印出来。例如,可以打印一份将数据 分组并计算数据总和的报表,也可以打印一份带有各种数据格式的商品标签。  3.Visual FoxPro 的基本特点 与其他数据库不同,Visual  FoxPro  在实现上述功能时提供了各种向导,用户在操作时只 需按照向导所提供的步骤执行即可,使用起来非常方便。  Visual  FoxPro  具有界面友好、工具丰富、速度较快等优点,并在数据库操作与管理、可 视化开发环境、面向对象程序设计等方面具有较强的功能。因此,Visual FoxPro 数据库深受广 大用户青睐,其基本特点主要表现在以下几个方面: (1)容易使用、兼容性好。  Visual  FoxPro  作为一个关系数据库系统,不仅可以简化数据管理,使应用程序的开发流 程更为合理,而且它还在早期版本的基础上实现了使计算机易于使用的构想,所以许多使用  Visual FoxPro 早期版本的用户在从事数据库开发时都可以很容易地转向使用 Visual FoxPro。 对 于进入数据库的新用户来说,使用 Visual  FoxPro 建立数据库应用程序要比使用其他软件容易 得多。 对于具备数据库应用开发能力的用户, 可以用 Visual FoxPro 开发可单独运行的应用系统。  Visual FoxPro 提供可视化、面向对象的编程环境,可使用微软标准的 ActiveX 控件,程序员在 其中可以轻松自如地开发出具有专业水准的应用系统。 对于没有数据库使用经验的用户,可以在中文 Windows 环境中运行 Visual FoxPro 支持或 可以脱离 Visual  FoxPro 而单独运行的数据库应用系统,这是一种适合办公管理人员操作管理 数据的方式。 (2)实现可视化开发。

l  Visual FoxPro 6.0 提供向导(Wizard)、设计器(Designer)生成器(Builder)等 3 类 界面操作工具,达 40 多种,它们普遍采用图形界面,能帮助用户以简单的操作快速 完成各种查询和设计任务。

l  Visual FoxPro 6.0 的设计器普遍配有工具栏和弹出式的快捷菜单。每个工具按钮对应 一项功能,用户可通过它们方便地完成操作(如打开文件)或设计控件(如控制钮), 不必编程或很少编程即可实现美观实用的应用程序界面。

(14)

(3)扩大了对 SQL 语言的支持。  SQL 语言是关系数据库的标准语言, 其查询语句不仅功能强大, 而且使用灵活。 早在 Visual  FoxPro 的后期版本中,就已移植了包括查询命令(SQL­Select 命令)在内的 4 条 SQL 型的命 令。在 Visual FoxPro 中,SQL 型的命令已经扩充为 8 种。 (4)采用事件驱动。  Windows 系统采用的是事件驱动,也就是说,运行于该环境下的程序并不是逐条指令地 顺序执行,而是偶尔停下来与用户交互。程序被写成许多独立的片段,某些程序只有当与其 关联的事件发生时才会执行。例如:一段功能代码与一个按钮控件的 Click 事件相关联,如 果我们要执行这个功能,那么通常只有当用户用鼠标单击该按钮时才会发生,否则该代码不 会被执行。 (5)编程。  Visual  FoxPro  仍然支持标准的面向过程的程序设计方式,但更重要的是它现在提供了真 正的面向对象的程序设计能力,如借助 Visual  FoxPro 对象模型可以充分使用面向对象程序设 计所有功能,包括继承、封装、多态和子类。重复使用各种类,直观、创造性地建立应用程序, 使用户能够更快、更容易地设计和修改应用程序界面。 (6)通过 OLE 实现应用集成。 “对象链接与嵌入” (Object Linking and Embedding,简称 OLE)是美国微软公司开发的 一项重要技术。通过这种技术,Visual FoxPro 可与包括 Word、Excel 在内微软其他应用软件共 享数据, 实现应用集成。 例如在不退出 Visual FoxPro 环境的情况下, 用户就可在 Visual FoxPro  的表单中链接其他软件中的对象,直接对这些对象进行编辑。在通过必要的格式转换后,用户 可以在 Visual FoxPro 与其他软件之间进行数据的输入与输出。 Visual FoxPro 6.0 还提供自动的  OLE 控制,用户借助于这种控制,甚至能通过 Visual FoxPro 的编程来运行其他软件,让它们 完成诸如计算、绘图等功能,实现应用的集成。 (7)支持网络应用。  Visual FoxPro 既适用于单机环境,也适用于网络环境,其网络功能主要包括: l 支持客户/服务器结构,既可访问本地计算机,也支持对服务器的浏览。 l 对于来自本地、 远程或多个数据库表的异种数据, Visual FoxPro 可支持用户通过本地 或远程视图访问与使用,并在需要时更新表中的数据。 l 在多用户环境中, Visual FoxPro 还允许建立事务处理程序来控制对数据的共享, 包括 支持用户共享数据,或限制部分用户访问某些数据。  1.4.2    Visual FoxPro 6.0 的安装条件与配置 如果利用 Visual FoxPro 6.0 来开发应用系统,必须将 Visual FoxPro 6.0 的系统安装到本地 机上,下面对已安装好的 Visual FoxPro 6.0 的软、硬件环境安装条件要求和配置、启动和退出 进行介绍。  1.软件与硬件条件  Visual FoxPro 6.0 系统的正确安装、运行必须具备相应的环境条件,其最低要求,一般应 具备如下环境条件: (1)处理器:配置 50MHz 主频 486 以上的 PC 机或兼容机;建议使用更高的处理器。 (2)内存储器:应选用 16 MB 以上。

(15)

(3)硬盘空间:典型安装需要 85MB 的硬盘空间,最大安装需要 90MB 硬盘空间。 (4)其他设备:一个鼠标、一个光盘驱动器、一台 VGA 或更高分辨率的显示器。 (5)操作系统:中文 Windows 95/98 或 Windows NT 以上操作系统。  2.启动 Visual FoxPro 6.0  与其他 Windows 应用程序(如 Word)的启动方法类似,通常用下面的方法启动 VFP: (1)单击“开始”按钮→选择“程序”→单击“Microsoft Visual FoxPro 6.0”命令。 (2)双击桌面上的 VFP 图标。在启动 Visual FoxPro 后,显示如图 1­13 所示的窗口。 图 1­13  Visual FoxPro 6.0 窗口  3.退出 Visual FoxPro 6.0  在结束使用 Visual  FoxPro 后,为保证数据的安全和软件本身的可靠性,需通过正常方式 退出 Visual FoxPro,常用的有以下几种方法: (1)单击“文件”菜单下的“退出”命令。 (2)单击标题栏最右端的关闭按钮 。 (3)按 Alt+F4 组合键。 (4)在命令窗口中输入 QUIT 命令,按 Enter 键。 (5)单击标题栏最左端的控制按钮 ,打开下拉菜单,选择“关闭”命令。  4.Visual FoxPro 6.0 的配置 安装好 Visual FoxPro 6.0 后,系统自动用一些默认值来设置环境,为了使系统能满足个性 化的要求,也可以定制自己的系统环境。环境设置包括主窗口标题、默认目录、项目、编辑器、 调试器、 表单工具选项、 临时文件存储、 拖放字段对应的控件和其他选项等内容。 Visual FoxPro  6.0 可以使用“选项”对话框进行设置,还可以使用 SET 命令进行设置。 下面介绍使用“选项”对话框设置 Visual FoxPro 的配置,对于使用 SET 命令设置将在 后面的进行学习。单击“工具”菜单,在其下拉菜单中选择“选项”命令,打开对话框如 图  1­14 所示。在“选项”对话框中根据需要进行相应设置。 “选项”中各选项卡的功能如 表 1­6 所示。 标题栏 菜单栏 工具栏 命令窗口 主屏幕

(16)

图 1­14  “选项”对话框 表 1­6  “选项”中选项卡的各功能 选项 功能 显示 界面选项,如是否显示状态栏、时钟、命令结果、系统住处或最近使用的项目列表等 常规 数据输入以及编程选项。设置是否记录编译错误、是否自动填充新记录、使用什么定位键、 警告声音、使用什么调色板以及改写文件前是否警告 数据 表选项,如是否使用 Rushmore 优化、是否使用索引强制实现唯一性、备注块大小、记录查找 计数器间隔以及使用什么锁定选项 远程数据 远程数据访问选项,如连接超时时间、一次拾取记录数目以及如何使用 SQL 更新 文件位置  Visual FoxPro 的默认位置、帮助文件和临时文件的存储位置 表单 表单设计器选项,如网格间距、所用量度单位、最大设计区域以及使用什么模板类 项目 项目管理器选项,如是否提示使用向导、双击时运行还是修改文件以及源代码管理的选项 控件 在“表单控件”工具栏上单击“查看类”按钮时出现可用的可视类库以及 ActiveX 控件的选项 区域 日期、时间、货币以及数字的格式 调试 调试器的显示以及跟踪选项,如使用的字体及颜色 语法着色 用于区分程序元素(如注释及关键字)等字体及颜色 字段映象 当从数据环境设计器、数据库设计器或者项目管理器中向表单拖动表或字段时创建的控件类 型的选项  1.4.3    Visual FoxPro 6.0 的操作界面  Visual FoxPro 6.0 提供了 7 种交互式操作界面:菜单、对话框、设计器、向导、生成器、 工具栏、窗口。Visual FoxPro 6.0 的主窗口主要由菜单、工具栏以及命令窗口组成。用户既可 以通过输入命令,也可以通过使用菜单或对话框来完成所需操作。  1.菜单系统 菜单由一系列菜单项组成,包括命令或子菜单。当从菜单栏上单击菜单标题时,相应的 菜单将出现以供选择。任何菜单项被用户选中后,其下方都会弹出一个子菜单,列出该菜单所 含的命令。如图 1­15 显示了菜单系统中每个菜单项展开后的子菜单。

(17)

(a) “文件” (b) “编辑” (c) “显示” (d) “格式” (e) “工具” (f) “程序” (g) “窗口” (h) “帮助” 图 1­15  Visual FoxPro 6.0 菜单系统 (1) “文件”菜单。 “文件”菜单用来完成与文件有关的操作,包括创建、打开、保存文件或对文件进行其他操 作的命令。 在这个菜单中可以设置打印机信息、 打印文件或退出 Visual FoxPro 6.0, 如表 1­7 所示。 表 1­7  “文件”菜单 菜单项 功能 新建 创建新的文件,如项目、数据库、表等 打开 打开已存在的文件 关闭 关闭已打开的文件 保存 保存当前被改动或新建的文件 另存为 保存一个新文件,或用另一个文件名保存当前文件 另存为 HTML  将当前表单、菜单、报表或表保存为 HTML 文档 还原 放弃上次保存以来对当前文件所做的修改,将其还原为最后保存的版本

(18)

续表 菜单项 功能 导入 将其他应用程序文件中的数据导入 Visual FoxPro 6.0 中 导出 将 Visual FoxPro 6.0 的文件以其他应用程序的格式输出 页面设置 设置纸张大小、打印机属性、打印方式 打印预览 在屏幕上显示将要打印的结果 打印 打印文本文件、报表或命令窗口中的内容 发送 当计算机中装有电子邮件程序时,从 Visual FoxPro 6.0 中发送电子邮件 退出 退出 Visual FoxPro 6.0,并把控制权返回给操作系统 (2) “编辑”菜单。 “编辑”菜单是用于文字编辑的,它包含编辑、查找和操作文件等命令,如表 1­8 所示。 表 1­8  “编辑”菜单 菜单项 功能 撤消 撤消最后一次编辑命令所做的操作 重做 重做最后一次撤消的操作 剪切 将选定的内容移到剪贴板上 复制 将选定的内容复制到剪贴板上 粘贴 将剪贴板的内容粘贴到指定的位置 选择性粘贴 链接或嵌入剪贴板中的一个 OLE 对象 清除 移去选中的文字、对象或者任何可以选中的内容 全部选定 选定活动窗口中的全部对象 查找 查找指定文本,并可进行替换操作 再次查找 重复上次的查找 替换 用其他文本替换指定文本 定位行 将光标定位到指定的行中 链接 修改或断开一个对象链接 属性 设置编辑属性 (3) “显示”菜单。 “显示”菜单中的命令是由当前操作环境确定的,变化较大。当用户还没有打开任何用 于显示“报表” 、 “选项卡” 、 “表单”等设计器和工具栏时,其中只包含有“工具栏”命令。 (4) “格式”菜单。 “格式”菜单用来确定活动窗口中的文本或其他对象的显示方式,包括字体、间距、对 齐方式和对象位置等选项,如表 1­9 所示。 (5) “工具”菜单。 “工具”菜单中有一些可以设置系统选项、运行向导、进行拼写检查、优化代码、运行 源代码管理器以及跟踪和调试代码的命令,如表 1­10 所示。

(19)

表 1­9  “格式”菜单 菜单项 功能 字体 规定字体的大小和字形 放大字体 将字体放大 缩小字体 将字体缩小 一倍行距 显示文本时,文本行间无空白行  1.5 倍行间距 把行间距设置为标准间距的 1.5 倍 两倍行间距 把行间距设为标准间距的两倍 缩进 将选定的行缩进一个 Tab 键的宽度 撤消缩进 删除一个选前插入的缩进 注释 在行首放轩一个“*!*” ,把该行标记为注释行 撤消注释 删除一个先前插入的注释 表 1­10  “工具”菜单 菜单项 功能 向导 显示一个具有多种向导的子菜单,可以从中选择运行相应的向导 拼写检查 检查拼写错误 宏 定义执行一组命令的组合键 类浏览器 打开“类浏览器”窗口 修饰 调整编辑窗口中文本的首字母的大小写及缩进方式 调试器 打开“调试器”窗口,从中可以监视存储在变量、数组元素、字段以及属性中 的值,也可以查看 Visual FoxPro 6.0 函数的返回值 组件管理库 打开“组件管理库”窗口 代码范围分析器 打开“代码范围分析器”实用程序 运行 Active Document  打开“运行 Active Document”对话框 选项 设置 Visual FoxPro 6.0 系统选项 (6) “程序”菜单。 “程序”菜单中包含用于运行和测试 Visual FoxPro 6.0 源代码的命令,如表 1­11 所示。 表 1­11  “程序”菜单 菜单项 功能 运行 运行程序、菜单或表单 取消 终止一个被挂起的 Visual FoxPro 6.0 文件的运行 继续执行 重新运行被挂起的程序 编译 编译程序、选项和查询文件 (7) “窗口”菜单。 “窗口”菜单中包含重排、显示、隐藏窗口等命令,如表 1­12 所示。

(20)

表 1­12  “窗口”菜单 菜单项 功能 全部重排 使全部打开的窗口重排,但不重叠 隐藏 将活动窗口隐藏 清除 从 Visual FoxPro  主窗口中清除所有文本 循环 将打开的活动窗口依次前置 命令窗口 显示“命令”窗口 数据工作期 显示“数据工作期”窗口 (8) “帮助”菜单。 “帮助”菜单中包括用来访问联机帮助及获得技术信息的选项,如表 1­13 所示。 表 1­13  “帮助”菜单 菜单项 功能 帮助主题 显示 Visual FoxPro 6.0 帮助的“索引”选项卡 文档 显示 Visual FoxPro 6.0 的联机文档 示例应用程序 显示 Visual FoxPro 6.0 的示例应用程序,概述帮助主题  Microsoft on the FoxPro  显示 Visual FoxPro 6.0 的系统信息 关于 Microsoft Visual FoxPro  显示 Visual FoxPro 的系统信息  2.工具栏 工具栏是单击后可以执行常用任务的一组按钮,工具栏可以浮动在窗口中,也可以停放 在 Visual  FoxPro 主窗口的上部、下部或两边。有效地使用工具栏可以简化从菜单中进行操作 的步骤,达到快速执行命令的效果。 在“显示”菜单下的“工具栏”命令用于显示一个工具栏对话框,在其中可以创建、编 辑、隐藏以及定制工具栏。 在 Visual FoxPro 6.0 中提供了十多种工具栏,用来方便操作。 表 1­14    Visual FoxPro 6.0 的工具栏 工具栏名称 工具栏名称 报表控件 查询设计器 报表设计器 打印预览 表单控件 调色板 表单设计器 视图设计器 布局 数据库设计器 (1)显示与隐藏工具栏。 若要显示或隐藏工具栏,可以单击“显示”菜单,从下拉菜单中选择“工具栏” ,此时打 开“工具栏”对话框,如图 1­16 所示。

(21)

图 1­16  “工具栏”对话框 在“工具栏”对话框中,选择要显示或隐藏的项,当“工具栏”中的某一项被选中时, 该项前面出现一个“×”时,则表明显示该工具栏。若前没有出现“×”时,则表明隐藏该工 具栏。例如:上图中只有“常用”工具栏是显示的,其他均为隐藏状态。 在“工具栏”对话框下方有三个复选框: l “彩色按钮” :表示所有活动的工具按钮为彩色按钮,否则就为黑白的。 l “大按钮” :工具栏中的图标按钮放大一倍,系统默认小图标按钮。 l “工具提示” :表示所有的工具栏按钮都有文本提示功能,即鼠标指针停留在某一个 图标按钮上时,用文字显示它的功能,否则不显示提示。 (2)定制工具栏。 在 Visual FoxPro 6.0 中用户可以根据需要创建自己的工具栏,或者修改现有的工具栏,这 些统称为定制工具栏。 例如,为“学生管理系统”建立一个工具栏,其中包含“新建” 、 “打开” 、 “保存” 、 “复 制” 、 “剪切” 、 “粘贴” 、 “运行” 、 “显示命令窗口”等。创建步骤如下: ①单击“显示→工具栏” ,打开“工具栏”对话框,如图 1­16 所示。 ②单击“新建”命令按钮,打开“新工具栏”对话框,如图 1­17 所示。在该对话框中输 入工具栏名称: “学生管理系统” ,然后单击“确定”按钮,此时弹出一个“定制工具栏”对话 框,如图 1­18 所示,同时在主窗口出现一个空的“学生管理系统”工具栏。 图 1­17  “新工具栏”对话框 图 1­18  “定制工具栏”对话框 ③在“定制工具栏”对话框左侧的“分类”列表框中选取所需类别,然后在其右侧便显 示该类所对应的所有按钮。根据需要,选择其中的按钮,并将其拖动到空的“学生管理系统” 工具栏上即可,所创建的工具栏如图 1­19 所示。 ④最后,单击“关闭”按钮即可。

(22)

图 1­19  “学生管理系统”工具栏 (3)编辑工具栏。 ①将要编辑的工具栏显示出来。单击“显示”菜单,从下拉菜单中选择“工具栏” ,弹出 “工具栏”对话框。 ②在“工具栏”对话框上单击“定制”按钮,弹出“定制工具栏”对话框。 ③向要编辑的工具栏上拖放新的图标按钮,此时可以增加新工具。 ④从工具栏上用鼠标直接将按钮拖动到工具栏之外,可以删除该工具。 ⑤最后单击“定制工具栏”对话框上的“关闭”按钮即可。  3.命令窗口 命令窗口是桌面上的一个重要部分,在该窗口中,可以直接键入 Visual FoxPro 6.0 的各种 命令,回车之后便立即执行该命令。对已经执行过的命令会在窗口中自动保留,如果需要执行 一个前面已经执行过的命令,只要将光标移到该命令所在行的任意位置,然后按回车键即可。 命令窗口可以隐藏与显示,操作方法如下: l 单击命令窗口右上角的关闭按钮可以关闭它,通过“窗口”菜单下的“命令”窗口选 项可以重新打开。 l 单击“常用”工具栏上的“命令窗口”按钮。当按钮处于按下状态时,显示“命令窗 口” ;当它处于弹起状态时,则隐藏“命令窗口” 。 l 快捷键方式: Ø 隐藏命令窗口:Ctrl+F4 组合键 Ø 显示命令窗口:Ctrl+F2 组合键  1.4.4 项目管理器 当使用 Visual FoxPro 6.0 完成一定的管理任务,或开发应用程序时,一般需要创建相应的 表、数据库、查询、视图、报表、选项卡、表单和程序。这些新创建的组件保存在不同类型的 文件中。开发一个应用程序常常会生成许多文件,为了能方便地管理这些文件,Visual FoxPro  6.0 提供了“项目管理器” 。在 Visual FoxPro 6.0 中,一个任务便是一个项目,项目中包含了完 成该任务而创建的所有表、数据库、查询等,可用项目管理器来维护项目。 “项目管理器”是  Visual FoxPro 6.0 中处理数据和对象的主要组织工具,是 Visual FoxPro 6.0 的“控制中心” 。  1.建立项目文件 项目是文件、 数据、 文档以及其他 Visual FoxPro 6.0 对象的集合。 项目文件的扩展名为.pjx。 在创建应用程序之前应先建一个项目文件。 下面以创建一个名为“学生管理”的项目文件为例,说明创建项目文件的方法。 (1)设置工作目录。  Visual FoxPro 6.0 有自己的默认工作目录, 就是系统文件所在的 Visual FoxPro 6.0 的目录。 为便于管理,用户最好设置自己的工作目录,以保存所建的文件。 例如在 D 盘的根目录下建立一个“学生管理”目录,并将其设置为工作目录。 ①在 D 盘的根目录下建立一个“学生管理”子目录。 ②选择“工具”→“选项”命令,打开“选项”对话框。

(23)

③选择“选项”对话框中的“文件位置”选项卡,如图 1­20 所示。 图 1­20  “选项”对话框中的“文件位置”选项卡 ④在“文件位置”选项卡中选中“默认目录” ,单击“修改”按钮,出现“更改文件位置” 对话框,如图 1­21 所示。 图 1­21  “更改文件位置”对话框 ⑤在“更改文件位置”对话框中,选择“使用默认目录”复选项,然后在“定位默认目 录: ”文本框中输入“d:\学生管理” ,单击“确定”按钮,返回“选项”对话框。 ⑥在“文件位置”选项卡中,可看到“默认目录”的“位置”已被设置为“d:\学生管理” , 单击“设置为默认值”按钮,再单击“确定”按钮,即可把该目录设置为用户的工作目录。 (2)建立项目文件。 例如,建立项目文件“学生管理” ,具体步骤如下: ①从“文件”菜单中选择“新建”命令,或直接单击工具栏上的“新建”按钮,打开“新 建”对话框(见图  1­22),在“新建”对话框中,选定“文件类型”为“项目” ,单击“新建 文件”按钮,将弹出“创建”对话框(见图 1­23)。 图 1­22  “创建”对话框 图 1­23  “创建”对话框 ②在“创建”对话框中将出现当前默认工作目录中的内容,现在这个目录还是空的,在 “项目文件”编辑框中输入项目文件名“学生管理” ,如图 1­23 所示。 ③单击“保存”按钮,此时“创建”对话框关闭, “项目管理器”窗口(见图 1­24)打开。

(24)

这样就建立了一个空的项目文件。 图 1­24  项目管理器 注意:在 Visual FoxPro 6.0 中,项目文件中所保存的仅是对文件的引用,并非文件本身。 同一文件可同时用于多个项目文件。  2.项目管理器的界面 (1)项目管理器窗口的命令按钮。 在项目管理器窗口中命令按钮是动态的,选择不同的对象可能会有不同的命令按钮排列。 ①新建。创建一个新文件或对象,其作用等同于“项目”→“新建文件”菜单项。新文 件或对象的类型与当前选定的类型相同。 ②添加。把已有的文件添加到项目中,其作用等同于“项目”→“添加文件”菜单项。 ③修改。在合适的设计器中打开选定项,其作用等同于“项目”→“修改文件”菜单项。 ④浏览。在浏览窗口中打开一个表,其作用等同于“项目”→“浏览文件”菜单项,且 仅当选定一个表时可用。 ⑤打开/关闭。打开或关闭一个数据库,其作用等同于“项目”→“打开文件”或“项目” →“关闭文件”菜单项,且仅当选定一个数据库时可用。如果选定的数据库已打开,此按钮为 “关闭” ;反之,此按钮变为“打开” 。 ⑥移去。从项目中移去选定文件或对象,Visual FoxPro 6.0 将询问是仅从项目中移去此文 件,还是同时将其从磁盘中删除。其作用等同于“项目”→“移去文件”菜单项。 ⑦连编。连编一个项目或应用程序,还可以连编可执行文件或自动服务程序,,其作用等 同于“项目”→“连编”菜单项。 ⑧预览。在打印预览方式下显示选定的报表或选项卡。当选定“项目管理器”中一个报 表或标签时可用,其作用等同于“项目”→“预览文件”菜单项。 ⑨运行。执行选定的查询、表单或程序。当选定“项目管理器”中一个查询、表单或程 序时可用,其作用等同于“项目”→“运行文件”菜单项。 (2)项目管理器的选项卡。 项目管理器的选项卡用来分类显示各数据项,项目管理器为数据提供了一个组织良好的 分层结构视图。若要处理项目中某一特定类型的文件或对象,可选择相应的选项卡。在建立表 和数据库以及创建表单、查询、视图和报表时,所要处理的主要是“数据”和“文档”选项卡 的内容。  1) “数据”选项卡。 该选项卡包含一个项目中所有的数据项,即数据库、自由表、查询和视图。

(25)

①数据库:是表的集合,一般通过公共字段彼此关联。使用“数据库设计器”可以创建 一个数据库,数据库文件的扩展名为 DBC。 ②自由表:存储在以 DBF 为扩展名的文件中,它不是数据库的组成部分。 ③查询:是查找存储在表中的特定信息的一种方法。利用“查询设计器”可以设置查询 的格式,该查询将按照用户输入的规则从表中提取记录。查询文件的扩展名为 QPR。 ④视图:是特殊的查询,不仅可以查询记录,而且可以更新记录。视图只能存在于数据 库中,它不是独立的文件。  2) “文档”选项卡。 “文档”选项卡中包含处理数据时所用的全部文档,即输入和查看数据所用的表单,以 及打印表和查询结果所用的报表及标签。 ①表单:用于显示和编辑表的内容 ②报表:报表文件告诉 Visual FoxPro 6.0 如何从表中提取结果,以及如何将提取的结果打 印出来。 ③标签:打印在专用纸上的带有特殊格式的报表。  3)其他选项卡(如“类” 、 “代码”及“其他” ) 。 主要用于为最终用户创建应用程序。 (3)定制“项目管理器”窗口的显示外观。 项目管理器显示为一个独立的窗口,具有工具栏窗口的性质。与工具栏类似,可以移动 项目管理器的位置、改变它的尺寸或者将它折叠起来,只显示选项卡。  1)移动窗口。将鼠标指针指向标题栏,然后将项目管理器拖到屏幕上的其他位置。  2)调整窗口尺寸。将鼠标指针指向项目管理器窗口的顶端、底端、两边或角上,拖动鼠 标即可扩大或缩小它的尺寸。  3)压缩和恢复窗口。单击项目管理器右上角的按钮,可以展开和折叠项目管理器。在折 叠情况下只显示选项卡,如图 1­25 所示。单击右上角的按钮,即可恢复项目管理器窗口。 图 1­25  折叠的“项目管理器”  4)移动表头。当项目管理器折叠时,把鼠标指针放到选项卡上拖动,可以将相应的选项 卡从项目管理器中拖走, 并根据需要重新安排它们的位置。 拖开某一选项卡后, 它可以在 Visual  FoxPro 6.0 的主窗口中独立移动。图 1­26 为拖开的“数据”选项卡和“文档”选项卡。 图 1­26  拖开的“数据”和“文档”选项卡 如果希望选项卡始终显示在屏幕的最顶层,可以单击选项卡上的图钉图标,这样,该选

(26)

项卡就会一直保留在其他 Visual FoxPro 6.0 窗口的上面。 可以使多个选项卡都处于顶层显示的 状态。再次单击图钉图标可以取消选项卡的顶层显示设置。 若要还原一个选项卡,只需要将其拖回到项目管理器或单击选项卡上的“关闭”按钮。  5)停放项目管理器。 将项目管理器拖动到屏幕顶部,或双击标题栏,可以停放项目管理器,使它显示在主窗 口的顶部,如图 1­27 所示。 图 1­27  “项目管理器”的工具栏 项目管理器处于停放状态时,只显示选项卡,不能将其展开,但是可以单击每个选项卡 来进行相应的操作。对于停放的项目管理器,同样可以从中拖开选项卡。如果想恢复项目管理 器的窗口形式,只要双击项目管理器工具栏的空白处即可。  3.使用项目管理器 在项目管理器中,各个项目都是图形方式来组织和管理的,用户可扩展或压缩某一类型 文件的图标。 (1)打开/关闭项目管理器。  1)打开项目管理器。 例如,打开“学生管理”项目。具体步骤如下: ①选择“文件”→“打开”菜单项。 ②在弹出的“打开”对话框中选择所需的项目文件,如图 1­28 所示。 图 1­28  “打开”对话框 ③单击“确定”按钮。  2)关闭项目管理器。 单击项目管理器右上角的“关闭”按钮即可。 (2)查看文件。  1)展开项目。 如果项目中具有一个以上同一类型的项,其类型符号旁边会出现一个“+”号。单击“+” 号可以显示项目中该类型的所有明细,此时“+”变为“-”号。

(27)

2)折叠项目。 若要折叠已展开的列表,可单击列表旁边的“-”号,此时“-”变为“+”号。 (3)在项目管理器中新建或修改文件。 项目管理器简化了创建和修改文件的过程。只需要选定要创建或修改的文件类型,然后 单击“新建”或“修改”按钮,将显示与所选文件类型相应的设计工具。对于某些项,还可以 选择利用向导来创建文件。 (4)为文件添加说明。 在项目管理器中,可以为文件加上说明。具有文件说明的文件被选定时,说明将显示在 项目管理器的底部。 (5)在项目间共享文件。 文件可以和不同的项目关联。通过与其他项目共享文件,可以使用在其他项目开发的工 作成果。共享的文件并未复制,项目只储存了对该文件的引用。 (6)查看和编辑项目信息。 从“项目”菜单中选择“项目信息”菜单项,打开“项目信息”对话框(见图 1­29),在 其中可以查看和编辑有关项目和项目中文件的信息。 例如,编辑“学生管理”项目的项目信息。具体步骤如下: ①打开“学生管理”项目的项目管理器。 ②选择“项目”→“项目信息”菜单项,打开“项目信息”对话框。 ③单击“项目信息”选项卡,输入与编辑相应的项目信息。 ④单击“确定”按钮。 图 1­29  “项目信息”选项卡  1.4.5 设计器、向导和生成器简介  1.Visual FoxPro 的设计器  Visual FoxPro 一个非常显著的特色就是提供了各种设计器,这些设计器为初学者进行项目的 设计和开发提供了非常有利的帮助, 如表 1­15 所示。 一个设计器一般由主设计窗口和工具栏组成。  2.Visual FoxPro 的向导  Visual FoxPro 中提供了一类有用的工具,称为“向导” 。向导是把一些复杂的操作分解为 若干个简单的步骤来完成, 每一步都使用一个对话框, 然后把这些对话框按适当的顺序组合在

(28)

一起。使用这些向导,用户只要逐步回答向导提出的问题,便可以自动完成相应的任务。在  Visual FoxPro 中有超过 20 个的向导,能帮助用户快速完成一般性的任务,针对不同的任务, 可使用不同的向导。 表 1­15    Visual FoxPro 中经常使用的设计器 选项 功能 表设计器 创建并修改数据库表、自由表、字段和索引 数据库设计器 管理数据库中包含的全部表、视图和关系 报表设计器 建立用于显示和打印数据的报表 查询设计器 创建和修改在本地表中运行的查询 视图设计器 创建可更新的查询——视图;在远程数据源上运行查询 表单设计器 创建并修改表单和表单集 菜单设计器 创建菜单栏及弹出式子菜单 数据环境设计器 创建和修改表单、表单集和报表的数据环境 连接设计器 为远程视图创建连接 (1)Visual FoxPro 中的向导如表 1­16 所示。 表 1­16    Visual FoxPro 的向导 向导 功能 表向导 创建一个新表 数据库向导 生成一个数据库 查询向导 创建一个查询 表单向导 创建一个表单 一对多表单向导 创建一个一对多表单 报表向导 创建一个报表 一对多报表向导 创建一个一对多报表 本地视图向导 创建一个视图 远程视图向导 创建一个远程视图 应用程序向导 创建一个 Visual FoxPro 应用程序 交叉表向导 创建一个交叉表查询 数据透视表向导 创建数据透视表 图形向导 创建一个图形 导入向导 导入或追加数据 文档向导 从项目和程序文件的代码中生成文本文件,并编排文本文件的格式 选项卡向导 创建邮件选项卡 邮件合并向导 创建邮件合并文件 

Oracle 升迁向导 创建一个 Oracle 数据库,该数据库将尽可能多地体现原 Visual  FoxPro 数据库的 功能

(29)

续表

向导 功能 

SQL Server 升迁向导 创建一个 SQL Server 数据库,该数据库将尽可能多地体现 Visual FoxPro 数据库 的功能

代码生成向导 从 Microsoft Visual Modeler(.mdl)文件中导入一个对象模型到 Visual FoxPro 中  Web 发布向导 在 HTML 文档中显示表或视图中的数据 

WWW 搜索页向导 创建一个 Web 页, 允许 Web 页的访问者从用户的 Visual FoxPro 表中搜索和下载 记录。 示例向导 生成一个自定义向导 安装向导 基于发布树中的文件创建发布磁盘 (2)向导的使用。 方法 1:从“文件”菜单中选择“新建”命令,然后在 “新建”对话框中单击“向导”按钮即可。 方法 2:在“工具”菜单的“向导”子菜单中选择相应 的向导,如图 1­30 所示。  3.Visual FoxPro 的生成器 生成器的功能主要是为能够方便、快速地设置对象提 供一些辅助选项。每个生成器显示一系列选项卡,用于设 置选中对象的属性。 表 1­17    Visual FoxPro 中所提供的生成器 选项 功能 表达式生成器 用于创建一个表达式 表单生成器 用于方便向表单中添加字段,这里的字段用作新的控件 应用程序生成器 如果选择创建一个完整的应用程序,可在应用程序中包含已经创建了的数据库和 表单或报表,也可使用数据库模板从零开始创建新的应用程序 表格生成器 用于设置表格控件的属性 编辑框生成器 用于设置编辑框控件的属性 命令按钮组生成器 用于设置命令按钮组控件的属性 自动格式生成器 用于将一组样式应用于选定的同类型控件 选项按钮组生成器 用于设置选项按钮组控件的属性 参照完整性生成器 用于设置触发器来控制相关表中记录的插入、更新和删除,以确保参照完整性 文本框生成器 用于设置文本框控件的属性 组合框生成器 用于设置组合框控件的属性 列表框生成器 用于设置列表框控件的属性  4.常用的表单生成器 (1)表单生成器有 3 种启动方法: 方法  1:在表单上右击,从弹出的快捷菜单中选择“生成器” ,则打开表单生成器,如图 图 1­30  “向导”子菜单

(30)

1­31 和图 1­32 所示。 方法 2:从“表单”菜单中选择“快速表单”菜单项即可打开表单生成器。 方法 3:单击“表单设计器”工具栏上的“表单生成器”按钮。 图 1­31  “字段选取”选项卡 图 1­32  “样式”选项卡 (2)表单中的控件生成器的使用方法如下: 首先创建一个新表单打开表单设计器,然后从“表单控件”工具栏中选择控件添加到表 单上,最后右击表单上的控件,从快捷菜单中选择“生成器”选项,此时弹出一个“选项组生 成器”对话框,如图 1­33 至 1­35 所示,设置相应属性后单击“关闭”图标即可。 图 1­33  “按钮”选项卡 图 1­34  “布局”选项卡 (3)参照完整性生成器。 参照完整性生成器帮助设置触发器,用来控制如何在相关表中插入、更新或者删除记录 确保参照完整性,具体操作如下: 在数据库设计器中右击两个表之间的关系线,弹出快捷菜单,如图 1­36 所示。 图 1­35  “值”选项卡 图 1­36  快捷菜单

(31)

然后在弹出的快捷菜单中选择“编辑参照完整性”命令,打开“参照完整性生成器”对 话框,如图 1­37 所示。 图 1­37  “参照完整性生成器”对话框  1.4.6    Visual FoxPro 6.0 的操作方式  Visual FoxPro 6.0 系统为用户提供了几种各具特点的操作方式,用户可根据情况以及应用 的需要,选择合适的操作方式,实现数据库的操作和应用。Visual FoxPro 6.0 系统的操作方式 主要有:命令操作方式、菜单操作方式、交互操作方式、程序操作方式。  1.命令  Visual  FoxPro  的操作窗口中提供了一个交互式的“命令”对话框,所谓命令操作是在命 令窗口中逐条输入命令,直接操作指定对象的操作方式。 例如在命令窗口中输入:  USE  学生  BROWSE  其操作结果为:打开名为“学生”的表,并浏览该“学生”表中的信息。 命令操作为用户提供了一个直接操作的手段,其优点是能够直接使用系统的各种命令和 函数有效操纵数据库,但需要开发人员熟练掌握各种命令和函数的格式、功能、用法等细节。  Visual FoxPro 中的命令格式通常为:命令动词+修饰子句,即命令动词开头,辅以若干个 修饰和限制的子句。 在使用命令时,一般遵循如下的规则: l 必须以命令动词开头,其后子句的顺序可以任意。 l 命令动词、修饰和限制子句之间要用空格分开。 l 命令动词可以缩写为前 4 个字符,并且命令动词中的英文字母不区分大小写。 l 变量名、字段名和文件名应避免使用保留字,以免产生错误。 l 在本书所给出的命令格式中,[  ]表示可选项,<>表示必选项,/表示在其左右参量中 任选一项。  2.菜单  Visual FoxPro 6.0 系统将许多命令做成菜单命令选项,用户通过选择菜单项来使用数据库 的操作方式。在菜单方式中,很多操作是通过调用相关的向导、生成器、设计器工具,以直观、 简便、可视化方式完成对系统的操作,用户不必熟悉命令的细节和相应的语法规则,通过对话 来完成操作。有了这种方式,一般用户无需编程就可完成数据库的操作与管理。

參考文獻

相關文件

• 做好的 Flash 動畫除了要儲存起來,方便日後再 載入 Flash 中編輯外,想要讓 Flash 動畫能夠在 其它應用程式播放,例如用 Microsoft Media Player

如今大師這部書的繁體字版、簡體字版都已經完成出版,在簡體

假若一位教師只為賺錢或養活自己而工作,他只須完成每日的教

重新启动 vim, 当你只编辑一个 buffer 的时候 MiniBufExplorer 派不上用场, 当你打开第 二个 buffer 的时候, MiniBufExplorer 窗口就自动弹出来了, 见下图:.

Excel VBA 乃是以 Visual Basic 程式語言為基礎,提供在 Excel 環境中進 行應用程式開發的能力。在 Excel 環境中「Visual Basic 編輯器」提供了一個

電腦視覺的影像處理與分析在軟體部分,本研究分別使用美國微 軟公司所開發的 Visual C++ 6.0 以及美國 Matrox Imaging 公司所發展 出來的 Matrox Imaging Library 7.0。其中

• 其認為使用「管制」一詞似乎意指政府單 方面的干涉非營利組織的活動,而使用規

Visual 的中文意思是「視覺化」,顧名思義,Visual basic 是一套視覺化的程 式開發工具。在設計程式的過程中,對於使用者的介面,設計師可以用直覺化