资源描述
Visual FoxPro8.0 数据库程序设计数据库程序设计学习要求1.1.1.1.课前预习、课后复习、上课认真听讲,做课前预习、课后复习、上课认真听讲,做课前预习、课后复习、上课认真听讲,做课前预习、课后复习、上课认真听讲,做笔记。笔记。笔记。笔记。2.2.2.2.实习前预习实验内容,上机时不做与实习实习前预习实验内容,上机时不做与实习实习前预习实验内容,上机时不做与实习实习前预习实验内容,上机时不做与实习 无关的事,按实验要求认真完成实习任务,无关的事,按实验要求认真完成实习任务,无关的事,按实验要求认真完成实习任务,无关的事,按实验要求认真完成实习任务,并将每次结果存在自备的软盘上。并将每次结果存在自备的软盘上。并将每次结果存在自备的软盘上。并将每次结果存在自备的软盘上。3.3.3.3.上课、上机不准迟到和缺席。上课、上机不准迟到和缺席。上课、上机不准迟到和缺席。上课、上机不准迟到和缺席。4.4.4.4.上机时遵守机房规定,不准玩游戏或喧哗上机时遵守机房规定,不准玩游戏或喧哗上机时遵守机房规定,不准玩游戏或喧哗上机时遵守机房规定,不准玩游戏或喧哗打闹打闹打闹打闹成绩记载1.1.本课程为必修课,期末统考。本课程为必修课,期末统考。2.2.统考成绩占统考成绩占30%30%平时成绩占平时成绩占20%20%(包括上机练习、作业、出(包括上机练习、作业、出勤、提问等)勤、提问等)实训(综合作业)占实训(综合作业)占50%50%第一章基本概念和VFP8.0开发环境本章主要内容:了解数据库系统基本知识、关系数据库及其特征了解数据库的数据模型、数据库系统的组成熟悉VisualFoxPro的开发环境掌握系统启动及退出的方法了解数据库应用背景1.11.1基本概念基本概念1.1.1数据与信息1数据(1)数据的定义数据是用来描述客观事物的可识别的符号。(2)数据的表现形式狭义:数据在大多数人们头脑中的第一个反应就是由09十个数码组成的数据。广义:描述事物的符号可以是数字,也可以是文字、声音、图形、图像等。数据可以有多种表现形式,它们都可以经过数字化后存入计算机。1.11.1基本概念基本概念2信息(1)信息的定义数据的表现形式还不能完全表达其内容,需要通过解释和处理。只有给数据赋予确切的含义后,它对人们才是有用的。(2)信息的特征信息源于物质和能量。信息是可以感知的。信息是可存储、传递、加工和再生的。信息是有用的。3数据与信息的关系信息和数据是两个既有联系,又有区别的概念。1.1.21.1.2数据处理数据处理数据处理是对各种类型的数据进行收集、整理、存储、加工、检索和传输,使之变为有用信息的一系列活动的总称。就是从某些已知的数据出发,推导加工出一些新的数据,这些新的数据又表示了新的信息。所以,数据处理也称为信息处理。信息处理的真正含义应该是为了产生信息而处理数据。1.1.31.1.3数据管理技术的发展数据管理技术的发展到目前为止,数据管理大致经历了人工管理、文件系统、数据库系统三个阶段:1人工管理阶段这个时期数据管理的特点是:(1)数据不保存。(2)没有专用的软件对数据进行管理。(3)数据不具有独立性。(4)数据是面向程序的。图1-1人工管理阶段数据与程序的关系2文件系统阶段文件系统管理阶段有以下几个特点:(1)数据以“文件”形式可长期保存在外部存储器的磁盘上。(2)文件组织已多样化。(3)数据与程序间有一定的独立性。(4)对数据的操作以记录为单位。在文件系统阶段,用户虽有了一定的方便,但仍有很多缺点。主要表现在:(1)数据冗余度大。(2)数据独立性低。(3)数据一致性差。图1-2文件系统阶段数据与程序的关系3数据库阶段数据库的特点有以下几方面:数据共享性高、冗余度低。数据结构化。数据独立性高。有统一的数据控制功能。数据库系统阶段,程序与数据之间的关系可用图1-3表示。1.1.41.1.4数据库系统数据库系统数据库系统DBS(DataBaseSystem)是指引进数据库技术后的计算机系统,主要包括数据库、计算机软件系统、计算机硬件系统和用户四个部分。(1)数据库数据库DB(DataBase)的定义,一般认为数据库是长期存储在计算机内、有组织的、可共享的数据集合。(2)计算机软件系统数据库系统的核心软件是数据库管理系统DBMS和数据库应用系统DBAS(DataBaseApplicationSystem)。1数据库管理系统目前,市场上的数据库管理系统(DataBaseManagementSystem,DBMS)绝大多数是关系型的。DBMS的基本功能:数据定义功能。数据操纵功能。数据库的运行管理。数据库的建立和维护功能。数据通信。2数据库应用系统数据库应用系统(DBAS)是指利用数据库系统资源开发的面向实际应用的软件系统。(3)计算机硬件系统硬件系统是指运行数据库系统所需要的硬件设备,包括主机、显示器等。(4)用户用户是指使用和管理数据库的人,他们可以对数据库进行存储、维护和检索等操作。数据库系统中用户可分为三类。终端用户应用程序员数据库管理员数据库系统组成结构图图1-5数据库系统组成结构图1.1.51.1.5数据库系统的新技术数据库系统的新技术1分布式数据库系统图图1-41-4分布式数据库系统分布式数据库系统分布式数据库系统主要有如下几个特点:数据的物理分布性。数据的逻辑整体性。结点的自主性。2对象数据库系统20世纪90年代,许多从事数据库研究的学者把数据库技术和面向对象技术相结合,研究出一种新的数据库系统面向对象数据库系统OODBS(ObjectOrientedDataBaseSystem),以满足新的应用需要。面向对象数据库系统的研究有两种观点,一种是在面向对象程序设计语言中引入数据库技术,另一种是从关系数据库系统自然地引入面向对象技术而进化到具有新功能的结果。现在一般把前一类数据库系统称为面向对象数据库系统(OODBS),后一类称为对象关系数据库系统ORDBS(ObjectRelationDataBaseSystem),这两类统称为对象数据库系统。基于对象关系模型的数据库系统称为对象关系数据库系统。所以对象关系数据库系统除了具有原来关系数据库的各种特点外,还具有以下特点:扩充数据类型。支持复杂对象。提供通用的规则系统。面向对象数据库系统的功能要求:在数据模型方面,引入面向对象的概念,包括对象、类、对象标识、封装、继承、多态性、类层次结构等。除此之外,还要求兼顾对传统的关系数据的管理能力。3网络数据库系统随着客户机/服务器结构的出现,使得人们可以最有效地利用计算机资源。在客户机/服务器结构中的服务器又称为数据库服务器,主要用于放置数据库管理系统以及存储数据,而客户机则负责应用逻辑与用户界面。但是在网络环境中,为了使一个应用程序能访问不同的数据库系统,需要在应用系统和不同的数据库管理系统之间加一层中间件。所谓中间件是网络环境中保证不同的操作系统、通信协议和数据库管理系统之间进行对话、互操作的软件系统。其中涉及数据访问的中间件,就是20世纪90年代提出的开放的数据库连接ODBC(OpenDataBaseConnectivity)技术和Java数据库连接JDBC(JavaDataBaseConnectivity)技术。1.1.61.1.6学生成绩管理系统学生成绩管理系统 开发一个管理系统可称之为开发一个项目。例如,开发学生成绩管理系统就是开发学生成绩管理项目。这里,涉及的问题包含3个方面。(1)成绩管理系统涉及哪些数据对象?对象之间的关系如何?如何保存各数据对象的相关数据?(2)成绩管理系统应具有哪些功能?(3)采用什么开发本系统?1.1.71.1.7数据模型数据模型数据库管理系统采用的数据模型主要有:关系模型、层次模型和网状模型。(1)关系模型以二维表格(关系表)的形式组织数据库中的数据。例如:下表描述了学生成绩管理系统中的部分数据。学号姓名性别出生时间专业专业编号毕业学校照片200201002余晖女1986-10-12计算机科学与技术40北京市七中200201018马小宁男1986-03-09计算机科学与技术42长沙市三中200302005李进程男1988-11-12计算机科学与技术40株洲市一中200302011张一天男1987-04-05计算机科学与技术40浏阳县五中200303014李红敏女1986-09-15计算机科学与技术40株洲市三中表格中的一行称为一个记录,一列称为一个字段,每列的标题称为字段名。如果给每个关系表取一个名字,则有n个字段的关系表的结构可表示为:关系表名(字段名1,字段名n),通常把关系表的结构称为关系模式。在关系表中,如果一个字段或几个字段组合的值可惟一标识其对应记录,则该字段或字段组合称为码。有时一个表可能有多个码,比如前表中,姓名不允许重名,则“学号”、“姓名”均是码。(2)层次模型以树型层次结构组织数据。图1.1为某学校按层次模型组织的数据示例。图图1.11.1按层次模型组织的数据示例按层次模型组织的数据示例(3)网状模型每一个数据用一个节点表示,每个节点与其他节点都有联系,这样数据库中的所有数据节点就构成了一个复杂的网络。图1.2为按网状模型组织的数据示例。图图1.21.2按网状模型组织的数据示例按网状模型组织的数据示例1.1.8E-R1.1.8E-R模型模型几个基本概念:通常,把每一类数据对象的个体称为“实体”,而每一类对象个体的集合称为“实体集”,因此在学生成绩管理系统中主要涉及“学生”和“课程”两个实体集。实体集中的实体彼此是可区别的,如果实体集中的属性或最小属性组合的值能惟一标识其对应实体,则将该属性或属性组合称为码。可以用图1.3描述学生成绩管理系统中的实体集及每个实体集涉及的属性实体集A和实体集之间存在各种关系,通常把这些关系称为“联系”。通常将实体集及实体集联系的图表示称为实体联系(entity-relationship)模型;从分析用户项目涉及的数据对象及数据对象之间的联系出发,到获取E-R图的这一过程称为概念结构设计。联系用菱形表示,通过直线与实体相连。E-R图就是E-R模型的描述方法。两个实体集A和B之间的联系可能是以下3种情况之一。(1)一对一的联系(11)A中的一个实体至多与B中的一个实体相联系,B中的一个实体也至多与A中的一个实体相联系。例如:“班级”与“正班长”这两个实体集之间的联系是一对一的联系,因为一个班只有一个正班长,反过来,一个正班长只属于一个班。“班级”与“正班长”两个实体集的E-R模型如图1.4所示。(2)一对多的联系(1n)A中的一个实体可以与B中的多个实体相联系,而B中的一个实体至多与A中的一个实体相联系。例如:“班级”与“学生”这两个实体集之间的联系是一对多的联系,因为一个班可有若干学生,反过来,一个学生只能属于一个班。“班级”与“学生”两个实体集的E-R模型如图1.5所示。(3)多对多的联系(mn)A中的一个实体可以与B中的多个实体相联系,而B中的一个实体也可与A中的多个实体相联系。例如:“学生”与“课程”这两个实体集之间的联系是多对多的联系,因为一个学生可选多门课程;反过来,一门课程可被多个学生选修。“学生”与“课程”两个实体集的E-R模型如图1.6所示。1.1.91.1.9逻辑结构设计逻辑结构设计前面用E-R图描述了学生成绩管理系统中实体集与实体集之间的联系,但这不是目标,我们的目的是以E-R图为工具,设计关系型的数据库,即确定应用系统所使用的数据库应包含哪些表?每个表的结构是怎样的?我们知道实体集之间的联系,可能是(11)、(1n)和(mn)3种联系之一,下面将根据3种联系介绍从E-R图获得关系模式的方法。1(11)联系的E-R图到关系模式的转换对于(11)的联系既可单独对应一个关系模式,也可以不单独对应一个关系模式。(1)联系单独对应一个关系模式,则由联系属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的任一方的主码。(2)联系不单独对应一个关系模式,联系的属性及一方的主码加入另一方实体集对应的关系模式中。2(1n)联系的E-R图到关系模式的转换对于(1n)的联系既可单独对应一个关系模式,也可以不单独对应一个关系模式。(1)联系单独对应一个关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。(2)联系不单独对应一个关系模式,则将联系的属性及1端的主码加入n端实体集对应的关系模式中,主码仍为n端的主码。3(mn)联系的E-R图到关系模式的转换对于(mn)的联系,单独对应一个关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。至此,已介绍了根据E-R图设计关系模式的方法,通常这一设计过程称为逻辑结构设计。在设计好一个项目的关系模式后,下一步的任务是选择合适的数据库管理系统,利用其提供的命令语句创建数据库和数据库的关系表以及输入相应数据,并根据需要对数据库中的数据进行各种操作。1.2VFP8.01.2VFP8.0集成开发环境集成开发环境启动VisualFoxPro8.0(简称VFP)后,系统显示VisualFoxPro8.0的集成环境,如图1.7所示。VisualFoxPro8.0的集成环境就是一个特殊的系统窗口,包含主菜单栏、工具栏、主窗口、命令窗口和状态栏,另外,还有系统窗口最大化按钮、最小化按钮和关闭按钮。(1)主菜单栏(2)工具栏(3)主窗口(4)命令窗口本章小结本章小结 数据库系统是一个应用系统,它是在计算机软、硬件系统的支持下,由用户、数据库管理系统、应用程序构成的数据处理系统。本章简要介绍了数据库系统的有关基础知识。并通过一个实际例子介绍数据库系统的有关基本概念。Visual FoxPro8.0 数据库程序设计数据库程序设计学习要求1.1.1.1.课前预习、课后复习、上课认真听讲,做课前预习、课后复习、上课认真听讲,做课前预习、课后复习、上课认真听讲,做课前预习、课后复习、上课认真听讲,做笔记。笔记。笔记。笔记。2.2.2.2.实习前预习实验内容,上机时不做与实习实习前预习实验内容,上机时不做与实习实习前预习实验内容,上机时不做与实习实习前预习实验内容,上机时不做与实习 无关的事,按实验要求认真完成实习任务,无关的事,按实验要求认真完成实习任务,无关的事,按实验要求认真完成实习任务,无关的事,按实验要求认真完成实习任务,并将每次结果存在自备的软盘上。并将每次结果存在自备的软盘上。并将每次结果存在自备的软盘上。并将每次结果存在自备的软盘上。3.3.3.3.上课、上机不准迟到和缺席。上课、上机不准迟到和缺席。上课、上机不准迟到和缺席。上课、上机不准迟到和缺席。4.4.4.4.上机时遵守机房规定,不准玩游戏或喧哗上机时遵守机房规定,不准玩游戏或喧哗上机时遵守机房规定,不准玩游戏或喧哗上机时遵守机房规定,不准玩游戏或喧哗打闹打闹打闹打闹成绩记载1.1.本课程为必修课,期末统考。本课程为必修课,期末统考。2.2.统考成绩占统考成绩占30%30%平时成绩占平时成绩占20%20%(包括上机练习、作业、出(包括上机练习、作业、出勤、提问等)勤、提问等)实训(综合作业)占实训(综合作业)占50%50%第二章VFP语言元素本章主要内容:了解VisualFoxPro的工作方式熟悉VisualFoxPro的基本命令集成环境、菜单项、命令格式了解VisualFoxPro的数据类型与文件类型、常量、变量、表达式及主要函数了解对象的属性、事件与方法2.1VFP2.1VFP基本知识基本知识2.1.1VisualFoxPro主界面当正常启动VFP系统后,首先进入系统主界面,如图2l所示。2.1.22.1.2操作方式操作方式 在VFP中,系统提供以下两种操作方式。1交互方式交互方式又可分为可视化操作和命令方式。(1)菜单操作方式系统将若干命令做成菜单接口,用户可以通过菜单的选择来操作。(2)工具操作方式在VFP系统中提供了许多工具,分为设计器、向导、生成器等3种交互式的可视化开发工具。(3)命令操作方式命令操作是指在命令窗口中输入命令就可以进行操作。2程序操作方式程序操作是指将多条命令编写成一个程序,通过运行这个程序达到操作数据库的目的。2.1.32.1.3莱单系统莱单系统 1系统菜单组成结构及工具栏简介(1)系统菜单VFP的菜单由一个条形菜单控制,初始状态下由“文件”、“编辑”、“格式”、“工具”、“程序”和“窗口”等菜单组成。(2)动态菜单项VFP在程序运行过程中,当用到某些功能时,系统将会动态地增加或修改一些菜单项,这类菜单项叫动态菜单项。(3)工具条工具条实际上也是一种窗口,只是这种窗口只能改变其形状而不能改变其大小。2.1.42.1.4对话框对话框 VFP下拉菜单中的某些选项带有省略号(),当选择这样的选项时,屏幕上就会出现对话框。对话框按其功能来分主要有:1设计器(Designer)设计器对话框主要包括表设计器、数据库设计器、查询设计器、视图设计器、表单设计器和菜单设计器等。2生成器(Builder)生成器对话框主要包括表达式生成器、列表生成器、编辑框生成器、网格生成器、列表框生成器等。3向导(Wizard)通常情况下,向导和设计器是对应的。它可根据已有的一些实例引导用户一步步创建表、报表、标准表单等。4窗口(Window)VFP提供了众多的窗口,如命令(Command)窗口、项目管理器(Project)窗口、浏览(Browse)窗口、代码(Code)窗口、调试(Debug)窗口、跟踪(Trace)窗口、编辑(Edit)窗口、属性(Properties)窗口等,这些窗口大多可直接通过菜单打开,但编辑窗口和属性窗口除外。5其它对话框如创建对话框、打开对话框、记录删除对话框等。2.1.52.1.5常用控件常用控件 1表单利用表单可以更多地显示信息。2标签标签是一组内容(一个页面)的标志。3文本框从文本框中获取变量的值,也可以输入。4列表框单击列表框右边的“”按钮,就可以列出所有的选项,然后单击其中一项,就可以选中。5单选按钮单选按钮是多个选择中只能选一的控件。6复选框复选框中打上“”标记表示选中,去掉“”标记表示没有选中。7微调按钮微调按钮实际上是一个加减器,单击“”图标表示加1,单击“”图标表示减1。8命令按钮命令按钮(即按压式按钮)显示为带阴影的立体矩形按钮,如图中的“取消”按钮。9组合框组合框中既可以输入信息,又可以选择相应的项。输入进去的内容就可以作为一个选项存在,下次再输入时直接选择即可。10编辑框编辑框实际上是文本框的扩展,可编辑多行信息。11页框(选项卡)页框是包容控件,以上所有的控件都可放置在页框之中。页框内可以设置许多页面,如“显示”、“文件位置”等。每个页面有一个标题(标签),单击标签就可进入该页面。2.1.62.1.6命令语法规则命令语法规则通过命令方式操作,需要有固定的格式和语法。1命令结构VFP有许多命令和函数,每条命令都有确定的格式(函数和命令格式是一样的).一般格式:命令动词命令动词 子句子句例1DISPLAYMEMORY命令格式格式:DISPLAYMEMORYLIKE通配符TOPRINTERPROMPTTOFILE文件功能:显示内存变量的当前内容。命令都是由命令动词和子句(选择项)构成的。该命令的动词是DISPLAYMEMORY(注意这是一个固定关键字,不可省略,可简写),尖括号和方括号内的内容都是子句(选择项)。(1)命令动词命令动词一般为一个英文动词,表示要执行的功能。当一个动词的字母超过4个时,从第5个字母开始都可以省略。从程序可读性考虑,不提倡省略命令动词的写法。(2)范围子句在一些命令中有范围子句,表示记录的范围,具体说明如下:RECORDN表示指定第N个记录;NEXTN表示从当前记录开始的N个记录;ALL表示数据库的所有记录;REST表示从当前记录开始到文件结束的所有记录。(3)FIELDS子句该子句说明数据库的字段名称,一般后面跟一个字段名列表(简称字段表,它由一个或多个由逗号隔开的字段名组成)。在字段表中,每个字段名之间必须用逗号隔开。如果不选择这个子句,则表示选择所有的字段。(4)FORWHILE子句这两条子句后面一般跟一个逻辑表达式expL,即其结果值必须为真(.T.)或假(.F.)。这个条件短语表示筛选出满足条件表达式(即表达式的结果为T)的记录,以实施命令操作。2命令书写规则书写VFP命令时应遵循如下规则:任何命令必须以命令动词开头,后面的多个子句通常与顺序无关,但必须符合命令格式的规定;用空格分隔各子句;一条命令的最大长度为254个字符,一行写不下时,用分行符“;”(英文分号)在行尾分行,并在下行继续书写;命令动词一般不要缩写,以保持程序的可读性;命令中的字符大小写可以混合使用,不区分大小写。为了美观,可以将命令关键字大写,而其它内容小写;VFP中没有规定的系统保留字,但用户在选择变量名、字段名和文件名时应尽可能不使用系统中的命令动词和其它系统已经使用过的名字,以免程序在运行时发生混乱。2.2VisualFoxPro2.2VisualFoxPro编辑窗口编辑窗口在应用中经常需要编写文本(如写程序),可以使用命令方式打开编辑器,格式如下。MODIFYCOMMAND|?使用该命令,所编辑的文本文件名的默认扩展名为“PRG”。2.2.12.2.1编辑莱单编辑莱单“编辑”莱单中包含很多功能选项,如图22所示的下拉式菜单。其各菜单项的含义如下所示。1.撤消恢复上次命令操作执行的结果。2.重做对刚做的操作再做一遍。3.剪切将当前选取的文本送至剪贴板上,原处的文本被删除。4.复制将当前选取的文本送至剪贴板上,原处的文本不删除。5.粘贴将剪贴板上的内容粘贴到当前位置上。6.选择性粘贴选择性地将文本粘贴到当前位置。7.清除删除选取的文本。8.全部选定选择当前窗口下所有的文本。9.查找自动在文本中查找要查找的字符串。10.再次查找再执行一次查找操作。11.替换替换并继续检索。12.定位行跳到指定行。输入一个数字,将光标移到指定行。13.插入对象插入一个对象,可能是图像、声音等。14.对象编辑对象。15.链接编辑超文本链接。16.属性设置编辑状态下的各种参数。在编辑菜单项的右边,显示了可以使用的热键。即单击菜单项和直接按热键操作的功能是一样的。该编辑菜单的功能与Microsoft软件的其它“编辑”菜单功能基本相同。2.2.22.2.2格式莱单格式莱单在系统菜单中,“格式”菜单的菜单项是用来辅助进行文本编辑的。单击“格式”菜单项,得到如图23所示的下拉式菜单,其各菜单项的含义如下所示。1.字体提供文字的各种字体、字号等设置。2.放大字体将选定的文字进行放大。3.缩小字体将选定的文字进行缩小。4.一倍行距设置当前文本的行距为默认设置的1倍。5.1.5倍行距设置当前文本的行距为默认设置的15倍。6.两倍行距设置当前文本的行距为默认设置的2倍。7.缩进将当前书写的命令缩进一个TAB位置(如4个空格)。8.撤消缩进恢复不缩进状态。9.注释将当前行的命令改为注释形式。10.撤消注释恢复不注释状态2.2.32.2.3文本编辑文本编辑 下面通过实例说明文本操作方法。例1将文中的程序改为文本。选择“编辑”菜单中的“替换”菜单项,得到相应对话框,在查找文本框中输入程序,在“替换为”文本框中输入文本(结果如图211所示),然后单击“全部替换”按钮即可。2.2.42.2.4命令窗口命令窗口VFP中所有任务都可以通过在命令窗口中输入相应的命令来完成。当选择执行某个菜单中的选项,或通过系统提供的工具完成某些任务时,实际上也是调用了VFP的命令,只不过这时的命令由系统自动生成,一些命令还会自动显示在命令窗口中。与其它窗口不同的是,系统启动后命令窗口即出现在屏幕上,且不能通过按ESC键关闭,只能通过“窗口|隐藏”操作将其隐藏;如果命令窗口没有显示在屏幕上,可以选择“窗口|命令窗口”项,或按CtrlF2键将其激活。2.32.3数据和数据类型数据和数据类型2.3.1数据的分类数据是计算机程序处理的对象,也是运算产生的结果。按数据的类型分类有:数值型数据、字符型数据、逻辑型数据等。按数据的处理层次分类有:常量、变量、函数和表达式。2.3.22.3.2数据的类型数据的类型(1)字符型(Character):由字母(汉字)、数字、空格等任意ASCII码字符组成。字符数据的长度为0254,每个字符占1个字节。(2)货币型(Currency):在使用货币值时,可以使用货币型来代替数值型。货币型数据取值的范围是:-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”其中yyyy为年,占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.9999999999E+20以下数据类型只能被用于数据表中的字段:(7)双精度型(Double):用于取代数值型,以便能提供更高的数值精度。双精度型只能用于数据表中字段的定义,它采用固定存储长度的浮点数形式。与数值型不同,双精度型数据的小数点的位置是由输入的数据值来决定的。每个双精度型数据占8个字节。(8)浮点型(Float):只能用于数据表中字段的定义,包含此类型是为了提供兼容性,浮点型在功能上与数值型等价。(9)通用型(General):用于存储OLE对象,只能用于数据表中字段的定义。该字段包含了对OLE对象的引用,而OLE对象的具体内容可以是一个电子表格、一个字处理器的文本、图片等,是由其他应用软件建立的。(10)整型(Integer):用于存储无小数部分的数值,只能用于数据表中字段的定义。在数据表中,整型字段占用4个字节,取值范围是:-21474836472147483647整型以二进制形式存储,不像数值型那样需要转换成ASCII字符存储。(11)备注型(Memo);备注型用于字符型数据块的存储,只能用于数据表中字段的定义。在数据表中,备注型字段占用10个字节,并用这10个字节来引用备注的实际内容。实际备注内容的多少只受内存可用空间的限制。备注型字段的实际内容变化很大,不能直接将备注内容存在数据表(.DBF)文件中。系统将备注内容存放在一个相对独立的文件中,该文件的扩展名为.DBT。由于没有备注型的变量,所以对备注型字段的处理,需转换成字符型变量,然后使用字符型函数进行处理。2.42.4常量与变量常量与变量2.4.1常量常量是一个命名的数据项,在整个操作过程中其值保持不变。如PI值,即31415926535是数值型常量。VFP定义了如下类型的常量:数值型常量,如:20,16,100,1字符型常量,用单引号或双引号括起来的字符串,如:ABCD逻辑型常量,只有两种:.T.和.F日期型常量和日期时间型常量,如:1999-04-22,1999-04-2410:00am2.4.2变量VFP有3种形式的变量:内存变量存放单个数据的内存单元数组变量存放多个数据的内存单元组字段变量存放在数据表中的数据项每个变量都有一个名称,叫做变量名,VFP通过相应的变量名来使用变量。变量名的命名规则是:(1)以字母、数字及下划线组成,中文VFP可以使用汉字作变量名。(2)以字母或下划线开始,中文VFP可以汉字开始。(3)长度为1128个字符,每个汉字占2个字符。(4)不能使用VFP的保留字。变量的作用域包括定义它的过程以及该过程所调用的子过程范围。2.52.5运算符与表达式运算符与表达式 运算是对数据进行加工的过程,描述各种不同运算的符号称为运算符,而参与运算的数据称为操作数。表达式用来表示某个求值规则,它由运算符和配对的圆括号将常量、变量、函数、对象等操作数以合理的形式组合而成。表达式可用来执行运算、操作字符或测试数据,每个表达式都产生唯一的值。表达式的类型由运算符的类型决定。在VFP中有5类运算符和表达式:算术运算符和算术表达式字符串运算符和字符串表达式日期运算符和日期表达式关系运算符和关系表达式逻辑运算符和逻辑表达式2.5.12.5.1算术运算符与算术表达式算术运算符与算术表达式 算术表达式也称数值型表达式,由算术运算符、数值型常量、变量、函数和圆括号组成,其运算结果为一数值。例如:50*2+(706)8的运算结果为10800。算术表达式的格式为:(1)算术运算符。VFP提供的算术运算符如表1所示。在这6个算术运算符中,除取负“-”是单目运算符外,其他均为双目运算符。它们运算的含义与数学中基本相同。运算符运算符名称名称说说 明明+加加同数学中的加法同数学中的加法-减减同数学中的减法同数学中的减法*乘乘同数学中的乘法同数学中的乘法/除除同数学中的除法同数学中的除法 或或*乘方乘方同数学中的乘方,如同数学中的乘方,如4343表示表示4 43 3 求余求余12125 5表示表示1212除以除以5 5所得的余数所得的余数(2)表达式的书写规则。算术表达式与数学中的表达式写法有所区别,在书写表达式时应当特别注意:每个符号占1格,所有符号都必须一个一个并排写在同一横线上,不能在右上角或右下角写方次或下标。例如:23要写成23,Xl十X2要写成X1+X2。原来在数学表达式中省略的内容必须重新写上。例如:2X要写成2*X。所有括号都用小括号(),且括号必须配对。例如:3x+2(y+z)必须写成3*(x+2*(y+z)。要把数学表达式中的有些符号,改成VFP中可以表示的符号。例如:要把2r改为2*pi*r。2.5.22.5.2字符串运算符与字符串表达字符串运算符与字符串表达式式一个字符串表达式由字符串常量、字符串变量、字符串函数和字符串运算符组成。它可以是一个简单的字符串常量,也可以是若干个字符串常量或字符串变量的组合。VFP提供的字符运算符有两个(其运算级别相同),如表2所示。符串表达式的格式为运算符名称说明连接将字符型数据进行连接空格移位连接将前一数据尾部的空格移到后面数据的尾部2.5.32.5.3日期时间运算符与日期时日期时间运算符与日期时间表达式间表达式 日期型表达式由算术运算符“、”、算术表达式、日期型常量、日期型变量和函数组成。日期型数据是一种特殊的数值型数据,它们之间只能进行加“”、减“”运算。有下面3种情况:两个日期型数据可以相减,结果是一个数值型数据(两个日期相差的天数)。例如:20051219-20051116结果为数值型数据:33一个表示天数的数值型数据可加到日期型数据中,其结果仍然为一日期型数据(向后推算的日期)。例如:20051116+33结果为日期型数据:20051219一个表示天数的数值型数据可从日期型数据中减掉它,其结果仍然为一日期型数据(向前推算的日期)。例如:20051219-33,结果为日期型数据:20051116VFP将无效的日期处理成空日期。2.5.42.5.4类与对象运算符类与对象运算符 类与对象运算符专门用于实现面向对象的程序设计。有以下两种:点运算符,确定对象与类的关系,以及属性、事件和方法与其对象的从属关系。:作用域运算符,用于在子类中调用父类的方法。2.5.52.5.5名表达式名表达式 在VFP中,许多命令和函数需要提供一个名。可在VFP中使用的名有:表/.DBF文件名、表/.DBF别名、表/.DBF字段名、索引文件名、文件名、内存变量和数组名、窗口名、菜单名、表单名、对象名、属性名、在VFP中定义一个名时,需要遵循以下原则:名中只能使用字母或下划线开始。名中只能使用字母、数字和下划线字符。不能使用VFP的保留字。名的长度可以为1128个字符,但自由表中的字段名、索引标记名最多为10个字符。文件名按操作系统的规定。名不是变量或字段,但是可以定义一个名表达式,以代替同名的变量或字段的值。2.62.6函数函数2.6.1函数的分类VFP的函数有两种,一种是用户自定义的函数,一种是系统函数。自定义函数由用户根据需要自行编写,系统函数则是由VFP提供的内部函数,用户可以随时调用。VFP提供的系统函数大约有380多个,主要分为:数值函数、字符处理函数、表和数据库函数、日期时间函数、类型转换函数、测试函数、菜单函数、窗口函数、数组函数、SQL查询函数、位运算函数、对象特征函数、文件管理函数以及系统调用函数等14类。2.6.22.6.2常用函数常用函数VFP提供了大量的系统函数供编程人员使用,下面列出常用的一些函数。下面重点介绍一些VFP中常用的函数:数值转换字符函数数值转换字符函数 str()功能:返回与指定数值表达式对应的字符。格式:str(数值表达式,长度,小数位数)返回值的类型:字符型参数意义:数值表达式:要被转换为字符的数值表达式。长度:转换后字符的长度。该长度等于小数点和小数点右边第个数字所占字符的数目总和。如果指定长度大于所需长度,自动在前面加空格补齐。如果指定长度小于所需长度,返回一串星(*)号,表示数值溢出。如省略长度,则默认长度为10。小数位数:指定返回字符串中的小数位数。如指定位数小于实际位数,则返回值四舍五入。如指定位数大于实际位数,则加0补齐。如省略小数位数,默认为0。在指定了小数位数的情况下,如指定长度(第二个参数)小于总长度,但大于整数长度,则返回对小数部分做了四舍五入的字符。备注:返回后的值看起来还是数的形式,但它的数据类型已经变了,不再是一个数值,也就是不能再用来做加、减、乘、除的算术运算,但可以和字符进行加减。字符转换数值函数字符转换数值函数 val()功能:将数字组成的字符表达式转换成数字值。格式:val(字符表达式)返回值的类型:数值型参数意义:字符表达式:要被转换为数值的字符表达式。该表达式由最多16位的数字组成,若超过16位,则对其圆整。备注:val()函数从左到右返回字符表达式中的数字,直到遇到非数值型字符(忽略前面的空格)时为止。若字符表达式的第一个字符不是数字,也不是正、负号,则返回0。取系统日期函数取系统日期函数 date()功能:返回由操作系统控制的当前系统日期。格式:date()返回值的类型:日期型 取年份函数取年份函数 year()功能:从指定的日期表达式中返回年份。格式:year(日期表达式)返回值的类型:数值型参数意义:日期表达式:指定的日期表达式,该函数即是返回其年份值。取月份函数取月份函数 month()功能:从指定的日期表达式中返回月份。格式:month(日期表达式)返回值的类型:数值型参数意义:日期表达式:指定的日期表达式,该函数即是返回其月份值。取天日函数取天日函数 day()功能:以数值型返回日期表达式是当月的第几天。格式:day(日期表达式)返回值的类型:数值型参数意义:日期表达式:指定的日期表达式,该函数返回该日期是当月的第几天。取整函数取整函数 int()功能:返回数值表达式值的整数部分。格式:int(数值表达式)返回值的类型:数值型参数意义:数值表达式:指定的数值表达式,该函数返回其整数部分。四舍五入函数四舍五入函数 round()功能:对指定表达式进行四舍五入运算,并把结果返回。格式:round(数值
展开阅读全文