版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Visual FoxPro8.0 数据库程序设计学习要求1.课前预习、课后复习、上课认真听讲,做笔记。2.实习前预习实验内容,上机时不做与实习 无关的事,按实验要求认真完成实习任务,并将每次结果存在自备的软盘上。3.上课、上机不准迟到和缺席。4.上机时遵守机房规定,不准玩游戏或喧哗打闹成绩记载1.本课程为必修课,期末统考。2.统考成绩占30% 平时成绩占20%(包括上机练习、作业、出勤、提问等) 实训(综合作业)占50% 第一章 基本概念和VFP 8.0开发环境本章主要内容:了解数据库系统基本知识、关系数据库及其特征了解数据库的数据模型、数据库系统的组成熟悉Visual FoxPro的开发环境
2、掌握系统启动及退出的方法了解数据库应用背景1.1 基本概念1.1.1 数据与信息1数据(1)数据的定义数据是用来描述客观事物的可识别的符号。 (2)数据的表现形式狭义:数据在大多数人们头脑中的第一个反应就是由09十个数码组成的数据。广义:描述事物的符号可以是数字,也可以是文字、声音、图形、图像等。数据可以有多种表现形式,它们都可以经过数字化后存入计算机。1.1 基本概念2信息(1)信息的定义数据的表现形式还不能完全表达其内容,需要通过解释和处理。只有给数据赋予确切的含义后,它对人们才是有用的。 (2)信息的特征 信息源于物质和能量。 信息是可以感知的。 信息是可存储、传递、加工和再生的。 信息
3、是有用的。3数据与信息的关系信息和数据是两个既有联系,又有区别的概念。 1.1.2 数据处理数据处理是对各种类型的数据进行收集、整理、存储、加工、检索和传输,使之变为有用信息的一系列活动的总称。就是从某些已知的数据出发,推导加工出一些新的数据,这些新的数据又表示了新的信息。所以,数据处理也称为信息处理。信息处理的真正含义应该是为了产生信息而处理数据。1.1.3 数据管理技术的发展到目前为止,数据管理大致经历了人工管理、文件系统、数据库系统三个阶段 :1人工管理阶段 这个时期数据管理的特点是: (1)数据不保存。 (2)没有专用的软件对数据进行管理。 (3)数据不具有独立性。 (4)数据是面向程
4、序的。 图1-1 人工管理阶段数据与程序的关系2文件系统阶段文件系统管理阶段有以下几个特点: (1)数据以“文件”形式可长期保存在外部存储器的磁盘上。 (2)文件组织已多样化。 (3)数据与程序间有一定的独立性。 (4)对数据的操作以记录为单位。 在文件系统阶段,用户虽有了一定的方便,但仍有很多缺点。主要表现在:(1)数据冗余度大。 (2)数据独立性低。 (3)数据一致性差。 图1-2 文件系统阶段数据与程序的关系3数据库阶段数据库的特点有以下几方面: 数据共享性高、冗余度低。 数据结构化。 数据独立性高。 有统一的数据控制功能。 数据库系统阶段,程序与数据之间的关系可用图1-3表示。 1.1
5、.4 数据库系统数据库系统DBS(DataBase System)是指引进数据库技术后的计算机系统,主要包括数据库、计算机软件系统、计算机硬件系统和用户四个部分。(1) 数据库 数据库DB(DataBase)的定义,一般认为数据库是长期存储在计算机内、有组织的、可共享的数据集合。(2) 计算机软件系统数据库系统的核心软件是数据库管理系统DBMS和数据库应用系统DBAS(DataBase Application System)。1数据库管理系统 目前,市场上的数据库管理系统(DataBase Management System, DBMS)绝大多数是关系型的。DBMS的基本功能: 数据定义功能。
6、 数据操纵功能。 数据库的运行管理。 数据库的建立和维护功能。 数据通信。 2数据库应用系统数据库应用系统(DBAS)是指利用数据库系统资源开发的面向实际应用的软件系统。 (3) 计算机硬件系统硬件系统是指运行数据库系统所需要的硬件设备,包括主机、显示器等。(4) 用户用户是指使用和管理数据库的人,他们可以对数据库进行存储、维护和检索等操作。数据库系统中用户可分为三类。 终端用户 应用程序员 数据库管理员 数据库系统组成结构图图1-5 数据库系统组成结构图1.1.5 数据库系统的新技术1分布式数据库系统图1-4 分布式数据库系统分布式数据库系统主要有如下几个特点: 数据的物理分布性。 数据的逻
7、辑整体性。 结点的自主性。 2对象数据库系统 20世纪90年代,许多从事数据库研究的学者把数据库技术和面向对象技术相结合,研究出一种新的数据库系统面向对象数据库系统OODBS(Object Oriented DataBase System),以满足新的应用需要。面向对象数据库系统的研究有两种观点,一种是在面向对象程序设计语言中引入数据库技术,另一种是从关系数据库系统自然地引入面向对象技术而进化到具有新功能的结果。现在一般把前一类数据库系统称为面向对象数据库系统(OODBS),后一类称为对象关系数据库系统ORDBS(Object Relation DataBase System),这两类统称为对
8、象数据库系统。基于对象关系模型的数据库系统称为对象关系数据库系统。所以对象关系数据库系统除了具有原来关系数据库的各种特点外,还具有以下特点: 扩充数据类型。 支持复杂对象。 提供通用的规则系统。面向对象数据库系统的功能要求:在数据模型方面,引入面向对象的概念,包括对象、类、对象标识、封装、继承、多态性、类层次结构等。除此之外,还要求兼顾对传统的关系数据的管理能力。 3网络数据库系统 随着客户机/服务器结构的出现,使得人们可以最有效地利用计算机资源。在客户机/服务器结构中的服务器又称为数据库服务器,主要用于放置数据库管理系统以及存储数据,而客户机则负责应用逻辑与用户界面。 但是在网络环境中,为了
9、使一个应用程序能访问不同的数据库系统,需要在应用系统和不同的数据库管理系统之间加一层中间件。所谓中间件是网络环境中保证不同的操作系统、通信协议和数据库管理系统之间进行对话、互操作的软件系统。其中涉及数据访问的中间件,就是20世纪90年代提出的开放的数据库连接ODBC(Open DataBase Connectivity)技术和Java数据库连接JDBC(Java DataBase Connectivity)技术。 1.1.6 学生成绩管理系统 开发一个管理系统可称之为开发一个项目。例如,开发学生成绩管理系统就是开发学生成绩管理项目。这里,涉及的问题包含3个方面。(1)成绩管理系统涉及哪些数据对
10、象? 对象之间的关系如何?如何保存各数据对象的相关数据? (2)成绩管理系统应具有哪些功能?(3)采用什么开发本系统?1.1.7 数据模型数据库管理系统采用的数据模型主要有:关系模型、层次模型和网状模型。(1)关系模型以二维表格(关系表)的形式组织数据库中的数据。例如:下表描述了学生成绩管理系统中的部分数据。 学 号姓 名性别出生时间专 业专业编号毕业学校照片200201002余晖女1986-10-12计算机科学与技术40北京市七中200201018马小宁男1986-03-09计算机科学与技术42长沙市三中200302005李进程男1988-11-12计算机科学与技术40株洲市一中200302
11、011张一天男1987-04-05计算机科学与技术40浏阳县五中200303014李红敏女1986-09-15计算机科学与技术40株洲市三中表格中的一行称为一个记录,一列称为一个字段,每列的标题称为字段名。如果给每个关系表取一个名字,则有n个字段的关系表的结构可表示为:关系表名(字段名1,字段名n),通常把关系表的结构称为关系模式。在关系表中,如果一个字段或几个字段组合的值可惟一标识其对应记录,则该字段或字段组合称为码。有时一个表可能有多个码,比如前表中,姓名不允许重名,则“学号”、“姓名”均是码。 (2)层次模型以树型层次结构组织数据。图1.1为某学校按层次模型组织的数据示例。 图1.1 按
12、层次模型组织的数据示例(3)网状模型每一个数据用一个节点表示,每个节点与其他节点都有联系,这样数据库中的所有数据节点就构成了一个复杂的网络。图1.2为按网状模型组织的数据示例。图1.2 按网状模型组织的数据示例1.1.8 E-R模型几个基本概念:通常,把每一类数据对象的个体称为“实体”,而每一类对象个体的集合称为“实体集”,因此在学生成绩管理系统中主要涉及“学生”和“课程”两个实体集。实体集中的实体彼此是可区别的,如果实体集中的属性或最小属性组合的值能惟一标识其对应实体,则将该属性或属性组合称为码。 可以用图1.3描述学生成绩管理系统中的实体集及每个实体集涉及的属性 实体集A和实体集之间存在各
13、种关系,通常把这些关系称为“联系”。 通常将实体集及实体集联系的图表示称为实体联系(entity-relationship)模型;从分析用户项目涉及的数据对象及数据对象之间的联系出发,到获取E-R图的这一过程称为概念结构设计。 联系用菱形表示,通过直线与实体相连。 E-R图就是E-R模型的描述方法。两个实体集A和B之间的联系可能是以下3种情况之一。 (1)一对一的联系(11)A中的一个实体至多与B中的一个实体相联系,B中的一个实体也至多与A中的一个实体相联系。 例如:“班级”与“正班长”这两个实体集之间的联系是一对一的联系,因为一个班只有一个正班长,反过来,一个正班长只属于一个班。“班级”与“
14、正班长”两个实体集的E-R模型如图1.4所示。 (2)一对多的联系(1n)A中的一个实体可以与B中的多个实体相联系,而B中的一个实体至多与A中的一个实体相联系。例如:“班级”与“学生”这两个实体集之间的联系是一对多的联系,因为一个班可有若干学生,反过来,一个学生只能属于一个班。“班级”与“学生”两个实体集的E-R模型如图1.5所示。(3)多对多的联系(mn)A中的一个实体可以与B中的多个实体相联系,而B中的一个实体也可与A中的多个实体相联系。例如:“学生”与“课程”这两个实体集之间的联系是多对多的联系,因为一个学生可选多门课程;反过来,一门课程可被多个学生选修。“学生”与“课程”两个实体集的E
15、-R模型如图1.6所示。1.1.9 逻辑结构设计前面用E-R图描述了学生成绩管理系统中实体集与实体集之间的联系,但这不是目标,我们的目的是以E-R图为工具,设计关系型的数据库,即确定应用系统所使用的数据库应包含哪些表?每个表的结构是怎样的?我们知道实体集之间的联系,可能是(11)、(1n)和(mn)3种联系之一,下面将根据3种联系介绍从E-R图获得关系模式的方法。 1(11)联系的E-R图到关系模式的转换对于(11)的联系既可单独对应一个关系模式,也可以不单独对应一个关系模式。 (1)联系单独对应一个关系模式,则由联系属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的
16、任一方的主码。 (2)联系不单独对应一个关系模式,联系的属性及一方的主码加入另一方实体集对应的关系模式中。 2(1n)联系的E-R图到关系模式的转换对于(1n)的联系既可单独对应一个关系模式,也可以不单独对应一个关系模式。(1)联系单独对应一个关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。 (2)联系不单独对应一个关系模式,则将联系的属性及1端的主码加入n端实体集对应的关系模式中,主码仍为n端的主码。 3(mn)联系的E-R图到关系模式的转换对于(mn)的联系,单独对应一个关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该
17、关系模式的主码由各实体集的主码属性共同组成。 至此,已介绍了根据E-R图设计关系模式的方法,通常这一设计过程称为逻辑结构设计。在设计好一个项目的关系模式后,下一步的任务是选择合适的数据库管理系统,利用其提供的命令语句创建数据库和数据库的关系表以及输入相应数据,并根据需要对数据库中的数据进行各种操作。1.2 VFP 8.0集成开发环境启动Visual FoxPro 8.0(简称VFP)后,系统显示Visual FoxPro 8.0的集成环境, 如图1.7所示。Visual FoxPro 8.0的集成环境就是一个特殊的系统窗口,包含主菜单栏、工具栏、主窗口、命令窗口和状态栏,另外,还有系统窗口最大
18、化按钮、最小化按钮和关闭按钮。(1)主菜单栏 (2)工具栏 (3)主窗口(4)命令窗口本章小结 数据库系统是一个应用系统,它是在计算机软、硬件系统的支持下,由用户、数据库管理系统、应用程序构成的数据处理系统。本章简要介绍了数据库系统的有关基础知识。并通过一个实际例子介绍数据库系统的有关基本概念。 Visual FoxPro8.0 数据库程序设计学习要求1.课前预习、课后复习、上课认真听讲,做笔记。2.实习前预习实验内容,上机时不做与实习 无关的事,按实验要求认真完成实习任务,并将每次结果存在自备的软盘上。3.上课、上机不准迟到和缺席。4.上机时遵守机房规定,不准玩游戏或喧哗打闹成绩记载1.本课
19、程为必修课,期末统考。2.统考成绩占30% 平时成绩占20%(包括上机练习、作业、出勤、提问等) 实训(综合作业)占50% 第二章 VFP语言元素本章主要内容:了解Visual FoxPro的工作方式熟悉Visual FoxPro的基本命令集成环境、菜单项、命令格式了解Visual FoxPro的数据类型与文件类型、常量、变量、表达式及主要函数了解对象的属性、事件与方法2.1 VFP基本知识2.1.1 Visual FoxPro主界面 当正常启动VFP系统后,首先进入系统主界面,如图2l所示。 2.1.2 操作方式 在VFP中,系统提供以下两种操作方式。1交互方式 交互方式又可分为可视化操作和
20、命令方式。 (1)菜单操作方式 系统将若干命令做成菜单接口,用户可以通过菜单的选择来操作。 (2)工具操作方式 在VFP系统中提供了许多工具,分为设计器、向导、生成器等3种交互式的可视化开发工具。 (3)命令操作方式 命令操作是指在命令窗口中输入命令就可以进行操作。 2程序操作方式 程序操作是指将多条命令编写成一个程序,通过运行这个程序达到操作数据库的目的。 2.1.3 莱单系统 1系统菜单组成结构及工具栏简介(1)系统菜单VFP的菜单由一个条形菜单控制,初始状态下由“文件”、“编辑”、“格式”、“工具”、“程序”和“窗口”等菜单组成。(2)动态菜单项VFP在程序运行过程中,当用到某些功能时,
21、系统将会动态地增加或修改一些菜单项,这类菜单项叫动态菜单项。(3)工具条工具条实际上也是一种窗口,只是这种窗口只能改变其形状而不能改变其大小。2.1.4 对话框 VFP下拉菜单中的某些选项带有省略号(),当选择这样的选项时,屏幕上就会出现对话框。对话框按其功能来分主要有:1设计器(Designer)设计器对话框主要包括表设计器、数据库设计器、查询设计器、视图设计器、表单设计器和菜单设计器等。2生成器(Builder)生成器对话框主要包括表达式生成器、列表生成器、编辑框生成器、网格生成器、列表框生成器等。 3向导(Wizard)通常情况下,向导和设计器是对应的。它可根据已有的一些实例引导用户一步
22、步创建表、报表、标准表单等。4窗口(Window)VFP提供了众多的窗口,如命令(Command)窗口、项目管理器(Project)窗口、浏览(Browse)窗口、代码(Code)窗口、调试(Debug)窗口、跟踪(Trace)窗口、编辑(Edit)窗口、属性(Properties)窗口等,这些窗口大多可直接通过菜单打开,但编辑窗口和属性窗口除外。5其它对话框如创建对话框、打开对话框、记录删除对话框等。2.1.5 常用控件 1表单利用表单可以更多地显示信息。2标签标签是一组内容(一个页面)的标志。3文本框从文本框中获取变量的值,也可以输入。4列表框单击列表框右边的“”按钮,就可以列出所有的选项
23、,然后单击其中一项,就可以选中。 5单选按钮单选按钮是多个选择中只能选一的控件。6复选框复选框中打上“ ”标记表示选中,去掉“ ”标记表示没有选中。 7微调按钮微调按钮实际上是一个加减器,单击“”图标表示加1,单击“”图标表示减1。 8命令按钮命令按钮(即按压式按钮)显示为带阴影的立体矩形按钮,如图中的“取消”按钮。 9组合框组合框中既可以输入信息,又可以选择相应的项。输入进去的内容就可以作为一个选项存在,下次再输入时直接选择即可。10编辑框编辑框实际上是文本框的扩展,可编辑多行信息。11页框(选项卡)页框是包容控件,以上所有的控件都可放置在页框之中。页框内可以设置许多页面,如“显示”、“文件
24、位置”等。每个页面有一个标题(标签),单击标签就可进入该页面。2.1.6 命令语法规则通过命令方式操作,需要有固定的格式和语法。1命令结构VFP有许多命令和函数,每条命令都有确定的格式(函数和命令格式是一样的).一般格式: 命令动词 子句例1 DISPLAY MEMORY命令格式格式:DISPLAY MEMORYLIKE通配符TO PRINTERPROMPTTO FILE 文件功能:显示内存变量的当前内容。命令都是由命令动词和子句(选择项)构成的。该命令的动词是DISPLAY MEMORY(注意这是一个固定关键字,不可省略,可简写),尖括号和方括号内的内容都是子句(选择项)。(1)命令动词命令
25、动词一般为一个英文动词,表示要执行的功能。当一个动词的字母超过4个时,从第5个字母开始都可以省略。从程序可读性考虑,不提倡省略命令动词的写法。(2)范围子句在一些命令中有范围子句,表示记录的范围,具体说明如下: RECORD N 表示指定第N个记录; NEXT N 表示从当前记录开始的N个记录; ALL 表示数据库的所有记录; REST 表示从当前记录开始到文件结束的所有记录。(3)FIELDS子句 该子句说明数据库的字段名称,一般后面跟一个字段名列表(简称字段表,它由一个或多个由逗号隔开的字段名组成)。在字段表中,每个字段名之间必须用逗号隔开。如果不选择这个子句,则表示选择所有的字段。(4)
26、FORWHILE子句 这两条子句后面一般跟一个逻辑表达式 expL,即其结果值必须为真(.T.)或假(.F.)。这个条件短语表示筛选出满足条件表达式(即表达式的结果为T)的记录,以实施命令操作。 2命令书写规则书写VFP命令时应遵循如下规则: 任何命令必须以命令动词开头,后面的多个子句通常与顺序无关,但必须符合命令格式的规定; 用空格分隔各子句; 一条命令的最大长度为254个字符,一行写不下时,用分行符“;”(英文分号)在行尾分行,并在下行继续书写; 命令动词一般不要缩写,以保持程序的可读性; 命令中的字符大小写可以混合使用,不区分大小写。为了美观,可以将命令关键字大写,而其它内容小写; VF
27、P中没有规定的系统保留字,但用户在选择变量名、字段名和文件名时应尽可能不使用系统中的命令动词和其它系统已经使用过的名字,以免程序在运行时发生混乱。 2.2 Visual FoxPro编辑窗口在应用中经常需要编写文本(如写程序),可以使用命令方式打开编辑器,格式如下。MODIFY COMMAND|?使用该命令,所编辑的文本文件名的默认扩展名为“PRG”。 2.2.1 编辑莱单 “编辑”莱单中包含很多功能选项,如图22所示的下拉式菜单。其各菜单项的含义如下所示。 1.撤消 恢复上次命令操作执行的结果。2.重做 对刚做的操作再做一遍。3.剪切 将当前选取的文本送至剪贴板上,原处的文本被删除。4.复制
28、 将当前选取的文本送至剪贴板上,原处的文本不删除。5.粘贴 将剪贴板上的内容粘贴到当前位置上。6.选择性粘贴 选择性地将文本粘贴到当前位置。7.清除 删除选取的文本。8.全部选定 选择当前窗口下所有的文本。9.查找 自动在文本中查找要查找的字符串。10.再次查找 再执行一次查找操作。11.替换 替换并继续检索。12.定位行 跳到指定行。输入一个数字,将光标移到指定行。13.插入对象 插入一个对象,可能是图像、声音等。14.对象 编辑对象。15.链接 编辑超文本链接。16.属性 设置编辑状态下的各种参数。在编辑菜单项的右边,显示了可以使用的热键。即单击菜单项和直接按热键操作的功能是一样的。该编辑
29、菜单的功能与Microsoft软件的其它“编辑”菜单功能基本相同。2.2.2 格式莱单在系统菜单中,“格式”菜单的菜单项是用来辅助进行文本编辑的。单击“格式”菜单项,得到如图23所示的下拉式菜单,其各菜单项的含义如下所示。 1.字体 提供文字的各种字体、字号等设置。2.放大字体 将选定的文字进行放大。3.缩小字体 将选定的文字进行缩小。4.一倍行距 设置当前文本的行距为默认设置的1倍。5.1.5倍行距 设置当前文本的行距为默认设置的15倍。6.两倍行距 设置当前文本的行距为默认设置的2倍。7.缩进 将当前书写的命令缩进一个 TAB位置(如 4个空格)。8.撤消缩进 恢复不缩进状态。9.注释 将
30、当前行的命令改为注释形式。10.撤消注释 恢复不注释状态2.2.3 文本编辑 下面通过实例说明文本操作方法。 例1将文中的程序改为文本。选择“编辑”菜单中的“替换”菜单项,得到相应对话框,在查找文本框中输入程序,在“替换为”文本框中输入文本(结果如图 211所示),然后单击“全部替换”按钮即可。2.2.4 命令窗口VFP中所有任务都可以通过在命令窗口中输入相应的命令来完成。当选择执行某个菜单中的选项,或通过系统提供的工具完成某些任务时,实际上也是调用了VFP的命令,只不过这时的命令由系统自动生成,一些命令还会自动显示在命令窗口中。 与其它窗口不同的是,系统启动后命令窗口即出现在屏幕上,且不能通
31、过按ESC键关闭,只能通过“窗口|隐藏”操作将其隐藏;如果命令窗口没有显示在屏幕上,可以选择“窗口|命令窗口”项,或按 CtrlF2键将其激活。 2.3 数据和数据类型2.3.1 数据的分类数据是计算机程序处理的对象,也是运算产生的结果。按数据的类型分类有:数值型数据、字符型数据、逻辑型数据等。按数据的处理层次分类有:常量、变量、函数和表达式。 2.3.2 数据的类型 (1) 字符型(Character):由字母(汉字)、数字、空格等任意ASCII码字符组成。字符数据的长度为0254,每个字符占1个字节。(2) 货币型(Currency):在使用货币值时,可以使用货币型来代替数值型。货币型数据
32、取值的范围是: -922337203685477.5807922337203685477.5807小数位数超过4位时,系统将进行四舍五入的处理。每个货币型数据占8个字节。(3) 日期型(Date):用以保存不带时间的日期值。日期型数据的存储格式为“yyyymmdd”其中yyyy为年,占4位,mm为月,占2位,dd为日,占2位。日期型数据的表示有多种格式,最常用的格式为mm/ddyyyy。日期型数据取值的范围是:公元0001年1月1日一公元9999年12月31日。 (4) 日期时间型(DateTime):用以保存日期和时间值。日期时间型数据的存储格式为 “yyyymmddhhmmss”其中yyy
33、y为年,占4位,mm为月,占2位,dd为日,占2位,hh为时间中的小时,占2位,mm为时间中的分钟,占2位,ss为时间中的秒,占2位。日期时间型数据中可以只包含一个日期或者只包含一个时间值,缺省日期值时,系统自动加上1999年12月31日,省略时间值时,则自动加上午夜零点。(5) 逻辑型(Logical):用于存储只有两个值的数据。存入的值只有真(.T.)和假(.F.)两种状态,占1个字节。(6) 数值型(Numeric):用来表示数量,它由数字09、一个符号(或)和一个小数点(.)组成。数值型数据的长度为120,每个数据占8个字节。数值型数据取值的范围是:-0.9999999999E+190
34、.9999999999E+20以下数据类型只能被用于数据表中的字段:(7) 双精度型(Double):用于取代数值型,以便能提供更高的数值精度。双精度型只能用于数据表中字段的定义,它采用固定存储长度的浮点数形式。与数值型不同,双精度型数据的小数点的位置是由输入的数据值来决定的。每个双精度型数据占8个字节。(8) 浮点型(Float):只能用于数据表中字段的定义,包含此类型是为了提供兼容性,浮点型在功能上与数值型等价。(9) 通用型(General):用于存储OLE对象,只能用于数据表中字段的定义。该字段包含了对OLE对象的引用,而OLE对象的具体内容可以是一个电子表格、一个字处理器的文本、图片
35、等,是由其他应用软件建立的。(10) 整型(Integer):用于存储无小数部分的数值,只能用于数据表中字段的定义。在数据表中,整型字段占用4个字节,取值范围是:-21474836472147483647整型以二进制形式存储,不像数值型那样需要转换成ASCII字符存储。(11) 备注型(Memo);备注型用于字符型数据块的存储,只能用于数据表中字段的定义。在数据表中,备注型字段占用10个字节,并用这10个字节来引用备注的实际内容。实际备注内容的多少只受内存可用空间的限制。 备注型字段的实际内容变化很大,不能直接将备注内容存在数据表(.DBF)文件中。 系统将备注内容存放在一个相对独立的文件中,
36、该文件的扩展名为.DBT。 由于没有备注型的变量,所以对备注型字段的处理,需转换成字符型变量,然后使用字符型函数进行处理。2.4 常量与变量2.4.1 常量常量是一个命名的数据项,在整个操作过程中其值保持不变。如PI值,即31415926535是数值型常量。 VFP定义了如下类型的常量:数值型常量,如:20,16,100,1 字符型常量,用单引号或双引号括起来的字符串,如:ABCD 逻辑型常量,只有两种:.T.和.F 日期型常量和日期时间型常量,如:1999-04-22,1999-04-24 10:00am 2.4.2 变量VFP有3种形式的变量:内存变量存放单个数据的内存单元 数组变量存放多
37、个数据的内存单元组 字段变量存放在数据表中的数据项 每个变量都有一个名称,叫做变量名,VFP通过相应的变量名来使用变量。变量名的命名规则是:(1) 以字母、数字及下划线组成,中文VFP可以使用汉字作变量名。(2) 以字母或下划线开始,中文VFP可以汉字开始。(3) 长度为1128个字符,每个汉字占2个字符。(4) 不能使用VFP的保留字。 变量的作用域包括定义它的过程以及该过程所调用的子过程范围。2.5 运算符与表达式 运算是对数据进行加工的过程,描述各种不同运算的符号称为运算符,而参与运算的数据称为操作数。表达式用来表示某个求值规则,它由运算符和配对的圆括号将常量、变量、函数、对象等操作数以
38、合理的形式组合而成。 表达式可用来执行运算、操作字符或测试数据,每个表达式都产生唯一的值。表达式的类型由运算符的类型决定。在VFP中有5类运算符和表达式:算术运算符和算术表达式 字符串运算符和字符串表达式 日期运算符和日期表达式 关系运算符和关系表达式 逻辑运算符和逻辑表达式 2.5.1 算术运算符与算术表达式 算术表达式也称数值型表达式,由算术运算符、数值型常量、变量、函数和圆括号组成,其运算结果为一数值。例如:50*2+(706)8的运算结果为10800。算术表达式的格式为:(1)算术运算符。VFP提供的算术运算符如表1所示。在这6个算术运算符中,除取负“-”是单目运算符外,其他均为双目运
39、算符。它们运算的含义与数学中基本相同。运算符名称说 明+加同数学中的加法-减同数学中的减法*乘同数学中的乘法/除同数学中的除法或*乘方同数学中的乘方,如43表示43 求余125表示12除以5所得的余数(2)表达式的书写规则。算术表达式与数学中的表达式写法有所区别,在书写表达式时应当特别注意:每个符号占1格,所有符号都必须一个一个并排写在同一横线上,不能在右上角或右下角写方次或下标。例如:23要写成23,Xl十X2要写成X1+X2。 原来在数学表达式中省略的内容必须重新写上。例如:2X要写成2*X。 所有括号都用小括号(),且括号必须配对。例如:3x+2(y+z)必须写成3*(x+2*(y+z)
40、。 要把数学表达式中的有些符号,改成VFP中可以表示的符号。例如:要把2r改为2*pi*r。 2.5.2 字符串运算符与字符串表达式一个字符串表达式由字符串常量、字符串变量、字符串函数和字符串运算符组成。它可以是一个简单的字符串常量,也可以是若干个字符串常量或字符串变量的组合。VFP提供的字符运算符有两个(其运算级别相同),如表2所示。 符串表达式的格式为运算符名称说明连接将字符型数据进行连接空格移位连接将前一数据尾部的空格移到后面数据的尾部2.5.3日期时间运算符与日期时间表达式 日期型表达式由算术运算符“、”、算术表达式、日期型常量、日期型变量和函数组成。日期型数据是一种特殊的数值型数据,
41、它们之间只能进行加“”、减“”运算。有下面3种情况:两个日期型数据可以相减,结果是一个数值型数据(两个日期相差的天数)。例如:20051219-20051116结果为数值型数据:33 一个表示天数的数值型数据可加到日期型数据中,其结果仍然为一日期型数据(向后推算的日期)。例如:20051116+33结果为日期型数据:20051219 一个表示天数的数值型数据可从日期型数据中减掉它,其结果仍然为一日期型数据(向前推算的日期)。例如:20051219-33 ,结果为日期型数据:20051116 VFP将无效的日期处理成空日期。2.5.4 类与对象运算符 类与对象运算符专门用于实现面向对象的程序设计
42、。有以下两种:点运算符,确定对象与类的关系,以及属性、事件和方法与其对象的从属关系。:作用域运算符,用于在子类中调用父类的方法。2.5.5 名表达式 在VFP中,许多命令和函数需要提供一个名。可在VFP中使用的名有:表/.DBF文件名 、 表/.DBF别名 、 表/.DBF字段名 、 索引文件名、文件名、 内存变量和数组名、窗口名、 菜单名、表单名、 对象名、 属性名、 在VFP中定义一个名时,需要遵循以下原则:名中只能使用字母或下划线开始。 名中只能使用字母、数字和下划线字符。 不能使用VFP的保留字。 名的长度可以为1128个字符,但自由表中的字段名、索引标记名最多为10个字符。文件名按操
43、作系统的规定。 名不是变量或字段,但是可以定义一个名表达式,以代替同名的变量或字段的值。2.6 函数2.6.1函数的分类VFP的函数有两种,一种是用户自定义的函数,一种是系统函数。自定义函数由用户根据需要自行编写,系统函数则是由VFP提供的内部函数,用户可以随时调用。 VFP提供的系统函数大约有380多个,主要分为:数值函数、字符处理函数、表和数据库函数、日期时间函数、类型转换函数、测试函数、菜单函数、窗口函数、数组函数、SQL查询函数、位运算函数、对象特征函数、文件管理函数以及系统调用函数等14类。 2.6.2 常用函数VFP提供了大量的系统函数供编程人员使用,下面列出常用的一些函数。下面重
44、点介绍一些VFP中常用的函数: 数值转换字符函数 str()功能:返回与指定数值表达式对应的字符。格式:str(数值表达式,长度,小数位数)返回值的类型:字符型参数意义: 数值表达式:要被转换为字符的数值表达式。 长度:转换后字符的长度。该长度等于小数点和小数点右边第个数字所占字符的数目总和。如果指定长度大于所需长度,自动在前面加空格补齐。如果指定长度小于所需长度,返回一串星(*)号,表示数值溢出。如省略长度,则默认长度为10。小数位数:指定返回字符串中的小数位数。如指定位数小于实际位数,则返回值四舍五入。如指定位数大于实际位数,则加0补齐。如省略小数位数,默认为0。在指定了小数位数的情况下,
45、如指定长度(第二个参数)小于总长度,但大于整数长度,则返回对小数部分做了四舍五入的字符。备注:返回后的值看起来还是数的形式,但它的数据类型已经变了,不再是一个数值,也就是不能再用来做加、减、乘、除的算术运算,但可以和字符进行加减。 字符转换数值函数 val()功能:将数字组成的字符表达式转换成数字值。格式:val(字符表达式)返回值的类型:数值型参数意义:字符表达式:要被转换为数值的字符表达式。该表达式由最多16位的数字组成,若超过16位,则对其圆整。备注:val()函数从左到右返回字符表达式中的数字,直到遇到非数值型字符(忽略前面的空格)时为止。若字符表达式的第一个字符不是数字,也不是正、负
46、号,则返回0。 取系统日期函数 date()功能:返回由操作系统控制的当前系统日期。格式:date()返回值的类型:日期型 取年份函数 year()功能:从指定的日期表达式中返回年份。格式:year(日期表达式)返回值的类型:数值型参数意义:日期表达式:指定的日期表达式,该函数即是返回其年份值。 取月份函数 month()功能:从指定的日期表达式中返回月份。格式:month(日期表达式)返回值的类型:数值型参数意义:日期表达式:指定的日期表达式,该函数即是返回其月份值。 取天日函数 day()功能:以数值型返回日期表达式是当月的第几天。格式:day(日期表达式)返回值的类型:数值型参数意义:日
47、期表达式:指定的日期表达式,该函数返回该日期是当月的第几天。 取整函数 int()功能:返回数值表达式值的整数部分。格式:int(数值表达式)返回值的类型:数值型参数意义:数值表达式:指定的数值表达式,该函数返回其整数部分。 四舍五入函数 round()功能:对指定表达式进行四舍五入运算,并把结果返回。格式:round(数值表达式,小数位数)返回值的类型:数值型参数意义:数值表达式:指定的数值表达式,该函数返回其四舍五入后的值。小数位数:保留的小数位数。 删除标记函数 delete()功能:确定当前记录是否已做删除标记,若已做删除标记,返回真(.t.),否则返回假(.f.)。格式:delete
48、(表别名|工作区)返回值的类型:逻辑型参数意义:表别名|工作区:该参数指定所要确定的表的别名或所在工作区,即您可以在一个工作区去检测另一工作区的表的记录是否做了删除标记,而另一工作区的表可用其别名或工作区号来指定。该参数如省略,隐含为当前工作区,如有该参数的话,别名或工作区只选一个。 记录号函数 recno()功能:返回当前表或指定表中的当前记录号。格式:recno(表别名|工作区)返回值的类型:数值型参数意义:表别名|工作区:该参数指定所要确定的表的别名或所在工作区,即您可以在一个工作区去得到另一工作区的表的当前记录号,而另一工作区的表可用其别名或工作区号来指定。该参数如省略,隐含为当前工作
49、区,如有该参数的话,别名或工作区只选一个。记录数函数 reccount()功能:返回当前表或指定表中的记录数目。格式:reccount(表别名|工作区)返回值的类型:数值型参数意义:表别名|工作区:该参数指定所要确定的表的别名或所在工作区,即您可以在一个工作区去得到另一工作区的表的记录数,而另一工作区的表可用其别名或工作区号来指定。该参数如省略,隐含为当前工作区,如有该参数的话,别名或工作区只选一个。 找到记录函数 found()功能:如果locate、continue、seek等查找记录的命令成功(即找到了记录),该函数返回“真”(.t.),否则返回“假”(.f.)。格式:found(表别名
50、|工作区)返回值的类型:逻辑型参数意义:表别名|工作区:该参数指定所要确定的表的别名或所在工作区,即您可以在一个工作区知道另一个工作区上次查找记录是否找到,而另一工作区的表可用其别名或工作区号来指定。该参数如省略,隐含为当前工作区,如有该参数的话,别名或工作区只选一个。 表结尾函数 eof()功能:确定记录指针是否在表的结尾处。格式:eof(表别名|工作区)返回值的类型:逻辑型参数意义:表别名|工作区:该参数指定所要确定的表的别名或所在工作区,即您可以在一个工作区知道另一个工作区表的指针是否在尾部,而另一工作区的表可用其别名或工作区号来指定。该参数如省略,隐含为当前工作区,如有该参数的话,别名
51、或工作区只选一个。备注:这里所说的结尾处,并非是指最后一个记录,而是最后一个记录的后面,即没有记录。 表开头函数 bof()功能:确定记录指针是否在表的开头。格式:bof(表别名|工作区)返回值的类型:逻辑型参数意义:表别名|工作区:该参数指定所要确定的表的别名或所在工作区,即您可以在一个工作区知道另一个工作区表的指针是否在开头,而另一工作区的表可用其别名或工作区号来指定。该参数如省略,隐含为当前工作区,如有该参数的话,别名或工作区只选一个。备注:这里所说的开头,并非是指第一个记录,而是第一个记录的前面。 消除后续空格函数 trim()功能:将字符表达式的后续空格全部删除,并将结果返回。格式:
52、trim(字符表达式)返回值的类型:字符型参数意义:字符表达式:指定的字符表达式,该函数将删除其后续空格。备注:trim()函数等同于rtrim()函数。 消除前导空格函数 ltrim()功能:将字符表达式前面的空格全部删除,并将结果返回。格式:ltrim(字符表达式)返回值的类型:字符型参数意义:字符表达式:指定的字符表达式,该函数将删除其前面空格。2.7 对象的属性、事件与方法对象(object)在现实生活中是很常见的,如:一个人是一个对象,一台PC机是一个对象。 2.7.1 对象的属性属性(Propeny)是指对象的一项描述内容,用来描述对象的一个特性,不同的对象有不同的属性,而每个对象
53、又都由若干属性来描述。 属性值的设置或修改可以通过属性窗口来进行,也可以通过编程的方法在程序运行的时候来改变对象的属性。在程序中设置属性的一般格式是:表单名.对象名.属性名属性值2.7.2 对象的事件 事件(Event)就是可能会发生在对象上的事情,是由VFP预先定义好的、能够被对象识别的动作,也可以说是我们对对象所做的操作(或者系统对某个对象的操作),如按钮被单击、对象被拖动、被改变大小、被鼠标左键双击等等。 事件过程(Event Procudure)是为处理特定事件而编写的一段程序。 2.7.3 对象的方法方法(Method)是指对象所固有完成某种任务的功能,可由我们在需要的时候调用。“方
54、法”与“事件”有相似之处,都是为了完成某个任务,但同一个事件可完成不同任务,取决于您所编的代码是怎样的,而方法则是固定的,任何时候调用都是完成同一个任务,即其中的代码已经由FOXPRO系统编写完成了,只需在必要的时候调用即可。 2.7.4 事件与方法的程序调用事件可以由事件的激发而调用其代码,也可以在运行中由程序调用,而方法只能在运行中由程序调用。在程序中调用事件代码的格式是:表单名.对象名.事件名在程序中调用对象方法的格式是表单名.对象名.方法名2.8 控件与对象 2.8.1 常用控件和内部对象 常用控件由VFP的基类提供,共21个,每个控件用“表单控件”按钮表示。 2.8.2 表单对象 表
55、单(Form)是应用程序的用户界面,也是进行程序设计的基础。各种图形、图像、数据等都是通过表单或表单中的对象显示出来,因此表单是一个容器对象。 在FoxPro的早期版本中表单被称为屏幕(Screen),在Visual Basic中则称为窗体。(1)表单的结构。 VFP的表单具有和Windows应用程序的窗口界面相同的结构特征。一个典型的表单有图标、标题、极小化按钮、极大化按钮、关闭按钮、移动栏、表单体及其周围的边框。其中除了表单体之外的所有特征都可以部分或全部从表单中被删除。(2)表单属性 在VFP中,表单的属性就是表单的结构特征。通过修改表单的属性可以改变表单的内常用的表单属性如后表所示。属
56、性名作 用AutoCenter用于控制表单初始化时是否总是位于VFP窗口或其父表单的中央BackColor用于确定表单的背景颜色BorderStyle用于控制表单是否有边框:系统(可调)、单线、双线Caption表单的标题Closable用于控制表单的标题栏中的关闭按钮是否能用ControlBox用于控制表单的标题栏中是否有控制按钮MaxButton用于控制表单的标题栏中是否有极大化按钮MinButton用于控制表单的标题栏中是否有极小化按钮Movable用于控制表单是否可移动TitleBar用于控制表单是否有标题栏WindowState用于控制表单是极小化、极大化还是正常状态WindowTy
57、pe若表单是模式表单,则用户在访问windows屏幕中其他任何对象前必须关闭该表单(3)表单的事件与方法。 就像属性那样,只有部分的表单事件与方法经常被使用,很多事件与方法很少被使用,除非你在编写一个非常复杂的应用程序。可以在代码窗口的“过程”下拉列表框中看到所有表单事件与方法的列表,也可以在“属性”窗口的“方法程序”选项卡中看到所有表单事件与方法的列表。2.8.3 对象的引用(1)对象的包容层次。VFP中的对象根据它们所基于的类的性质可分为两类:容器类对象和控件类对象。容器类对象可以包含其他对象,并且允许访问这些对象,例如表单集、表单、表格等控件类对象只能包含在容器对象之中,而不能够包含其他
58、对象,例如命令按钮、复选框等。(2)对象的引用。作为应用程序的用户界面,表单上可以包含许多对象,而这些对象又有可能具有互相包含的层次关系。若要引用一个对象,需要知道它相对于容器层次的关系。例如,如果要在表单集中处理一个表单的控件,则需要引用表单集、表单和控件。 绝对引用:通过提供对象的完整容器层次来引用对象。若要使表列中的控件无效,需要提供以下地址:Formset.Form.PageFrame.Page.Grid.Column.Control.Enabled=.F. 相对引用:在容器层次中引用对象时,可以通过快捷方式指明所要处理的对象。 本章小结本章主要介绍了如下内容:VFP的性能指标、文件类
59、型及VFP运行环境等;VFP的用户操作界面及其4种操作方式;编辑窗口及命令窗口的编辑技巧;VFP语言的基本要素,包括数据类型、常量、变量、函数和表达式。第3章 表与数据库本章主要内容数据表的建立与基本操作数据库的建立与基本操作表的索引与排序表间关系与参照完整性数据共享重点表与数据库的建立表的基本操作表的索引难点表的索引数据库表的多表间的关系课时安排:课时(理论课时,讲授课时)3.1 数据表的建立VFP8.0中要处理的数据都是以二维表格的形式存放的 ,表文件的扩展名为.DBF。表分为自由表和数据库表两种。表由行和列组成,表中的每一行在VFP8.0中称为一条记录,每一列称为一个字段。 每个表包括表
60、名、表结构和表记录三部分,如下表所示。3.1.1 表的基本概念学生信息表学号姓名性别出生日期班级照片备注0301022王大伟男87/04/11计3班照片简历0301005李明亮男86/11/01计3班照片简历0302011赵 红女86/03/13计1班照片简历0203005张一敏男87/10/14计1班照片简历0203023李小萌女87/05/06计2班照片简历0302018欧阳伟强男85/09/22计1班照片简历3.1.2 设计表结构1.字段名 字段名可以由字母、数字、下划线及汉字组成,但必须以字母或汉字开头,字段名中不允许有空格。自由表中的字段名长度不能超过10个字符,数据库表允许使用长字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年非全日制用工协议模板解析
- 2024网络通信设备买卖协议指导
- 2024年新款高强度围墙护栏销售协议
- 2024银行股权质押借款协议模板
- 2024年化围栏施工协议范例
- 2024年门面房使用权转租协议样式
- DB11∕T 1708-2019 施工工地扬尘视频监控和数据传输技术规范
- 2024年度酒店早餐外判协议示例
- 2024城区鼠害防治协议范本
- 2024年企业员工劳动协议条款细则
- 2024年中核汇能有限公司招聘笔试参考题库含答案解析
- 肺炎护理查房课件
- 北京地区成人本科学士学位英语统一考试应试指南
- 部编《道德与法治》二年级上册教材解析及教学建议
- 民俗学-人生礼仪民俗(诞生成年)
- 餐饮服务挂靠合同
- 消防工程质量保修协议
- 地貌与公路工程-山岭地貌(工程地质课件)
- 江苏省常州市金坛区2023-2024学年九年级上学期期中英语试卷
- 湖北省武汉市2022-2023学年八年级上学期语文期中试卷(含答案)
- 1000字作文稿纸模板(完美修正版)
评论
0/150
提交评论