VisualFoxPro6.0程序设计课件_第1页
VisualFoxPro6.0程序设计课件_第2页
VisualFoxPro6.0程序设计课件_第3页
VisualFoxPro6.0程序设计课件_第4页
VisualFoxPro6.0程序设计课件_第5页
已阅读5页,还剩249页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

及其应用系统开发

第一章数据库技术基础VisualFoxPro6.0

第一章数据库技术基础

§1.1数据管理技术的发展数据:数据用来表示实体及其属性。数据不仅指数值,还可是文字、图形、图像、色彩、声音等多种类型。在计算机中,存贮、处理、传输的数据必须数字化。数据处理:对数据进行加工处理的操作过程,通常包括:收集、存储、分类、排序、检索、汇总、计算等。信息:是对数据经过加工处理,得到可以对人们社会实践和生产活动产生决策影响的数据。通过对数据处理而得到信息。数据管理:是指如何对数据进行分类、组织、编码、存储、检索和维护,它是数据处理的核心问题。数据管理技术的发展经历了以下三个阶段:

1.1.1.人工管理阶段(1)人工管理方式出现在计算机数据管理的初期。(科学计算)(2)由于没有必要的软件、硬件环境的支持,用户只能直接在裸机上操作。用户的应用程序中不仅要设计数据处理的方法,还要阐明数据在存贮器上的存贮地址。硬件:纸带、卡片、磁带软件:无操作系统和管理数据的软件该阶段的特点:

1.数据不保存

2.数据与程序不具独立性

3数据冗余度大

应用程序1

数据集1应用程序2

数据集2应用程序n

数据集n图1-1人工管理阶段的数据处理1.1.2文件系统管理阶段文件管理方式即把有关的数据组织成一种文件,这种数据文件可以脱离程序而独立存在,由一个专门的文件管理系统实施统一管理。硬件:磁盘、磁鼓软件:操作系统出现(含文件系统)在这一管理方式下,应用程序通过文件管理系统对数据文件中的数据进行加工处理。应用程序的数据具有一定的独立性,也比手工管理方式前进了一步。但是,数据文件仍高度依赖于其对应的程序,不能被多个程序所通用。

应用程序1

数据集1应用程序2

数据集2应用程序n

数据集n图1-2文件系统阶段的数据处理文件系统1.1.3数据库系统管理阶段在数据库系统中,数据实现统一、集中、独立的管理,实现数据的高度共享,保证了数据的完整性和安全性。对数据的一般处理,由独立的数据库管理系统完成,而不再依赖于应用程序。数据库系统的特点:1.数据的结构化

2.数据共享

3.数据独立性(相对应用程序的独立)

4.可控冗余度(重复数据的控制)

5.有统一的数据管理和控制功能应用程序1应用程序2应用程序n图1-3数据库系统阶段的数据处理数据库管理系统数据库§1.2数据模型现实世界中的客观事物是彼此相互联系的。

一方面,某一事物内部的诸因素和诸属性具有联系,构成一个相对独立的系统;

另一方面,某一事物同时也作为一个更大系统的一个因素或一种属性而存在,并与系统的其它因素或属性发生联系。客观事物的这种普遍联系性决定了作为事物属性记录符号的数据与数据之间也存在着一定的联系性。

数据总是按照一定的组织关系排列,从而构成一定的结构,对这种结构的描述就是数据模型。常用的数据模型有层次模型、网络模型和关系模型三种。1.2.1

层次模型(hierarchicalmodel)

:是用树形(倒向树)结构来表示实体之间的联系模型。倒向树以结点与连线组成,结点表示实体,连线表示相连两实体之间的联系。

其主要特征如下:

(1)有且仅有一个根结点。

(2)根结点以外的子结点,向上仅有一个父结点。ABCDEFGHIJ根结点父结点子结点

层次模型表示的是从父结点到子结点的一对多,或从子结点到父结点的多对一的数据间的联系。1.2.2

网状模型(networkmodel)

:是层次模型的扩展,在网络模型中,每一个结点都可以与其它任一结点建立联系。

1.2.3

关系模型(relationalmodel)

:用二维表格数据来表示实体之间的联系模型,称为关系模型。关系模型涉及的基本概念

关系:

元组:

属性:

值域:一个二维表对应一个关系。表中每一行描述一个实体,称作“记录”;各行的每一列表示各实体的不同属性,称作“字段”或“数据项”;关系模型的主要特点有:

关系中每一数据项不可再分,是最基本的单位;各列的顺序是任意的;

各行(记录)的顺序可以是任意的;

一个关系是一张二维表,不允许有相同的字段名,也不允许有相同的记录行。

关系数据库的关系运算1.选择(筛选、过滤)在数据表中,选取符合一定条件的记录。2.投影

对数据表中的某些字段进行操作。3.连接连接是从两个或多个关系中选取属性间满足一定条件的元组,组成一个新的关系。§1.3数据库系统的组成

数据库系统包括:数据库DataBase(一般概念)数据库管理系统DBMS

数据库应用系统DBAS数据库系统包括:数据库

(广义)数据库管理系统数据库应用系统数据库管理员DBA

用户USER

数据库DataBase

数据的仓库。所谓数据库,就是以一定的组织方式将相关的数据组织在一起存放在计算机存储器上形成的、能为多个用户共享的、与应用程序彼此独立的一组相关数据的集合。数据库管理系统DBMS

(DataBaseManagementSystem)是对数据进行定义、获取、存储、组织、操作、使用、维护和管理的软件系统。数据库管理系统是数据库系统的核心数据库管理系统应具有以下功能:

1数据定义功能DDL2数据操作功能DML3控制和管理功能DCL数据库应用系统DBAS

常由数据库和应用程序组成,大都在DBMS支持下开发。USER数据库DBMSUSER应用程序§1.4数据库系统的体系结构数据库系统体系结构是数据库系统的一个总的框架。尽管实际的数据库系统的软件产品多种多样,但绝大多数的数据库系统在总的体系结构上都具有三级模型结构的结构特征。

外模式三级模式概念模式内模式见课本P11,图1-6§1.5新一代数据库技术发展1.分布式数据库2.面向对象数据库3.多媒体数据库4.模糊数据库硬件OSDBMS应用开发工具软件应用系统含数据库的计算机系统构成图习题1、VisualFoxPro关系数据库管理系统能够实现的三种基本关系运算是。A)索引、排序、查找B)建库、录入、排序C)选择、投影、联接D)显示、统计、复制2、关系数据库系统中所使用的数据结构是()A、树B、图C、表格D、二维表3、从数据库的整体结构看,数据库系统采用的数据模型有()A、网状模型、链状模型和层次模型B、网状模型、环状模型和层次模型C、网状模型、关系模型和层次模型D、结构模型、关系模型和环状模型4、VFP中的数据库系统是()A、网状B、层次C、关系D、链状5、在关系数据库中,二维表的列称为

,二维表的行称为

.

6、两个表之间的关系有以下三种一对一关系、一对多关系、多对多关系。Johnson192-83-7465AlmaPaloAltoA-101Smith019-28-3746NorthRyeA-215Hayes677-89-9011MainHarrisonA-102Johnson192-83-7465AlmaPaloAltoA-201Jones321-12-3123MainHarrisonA-217Lindsay336-66-9999ParkPittsfieldA-222Smith019-28-3746NorthRyeA-210A-101500A-215700A-102400A-217750A-222700A-201900A-210900姓名身份证号码街道城市银行帐号银行帐号存款余额Johnson192-83-7465AlmaPaloAltoA-101Johnson192-83-7465AlmaPaloAltoA-201选择姓名为Johnson的记录,形成新的关系:JohnsonA-101SmithA-125HayesA-102JohnsonA-201JonesA-217LindsayA-222SmithA-201通过投影得到的新的关系

§2.1VFP的发展简述

美国Fox软件公司于1984年开始先后推出FoxBASE、FoxPro 1.0、FoxPro 2.0。1992年Microsoft公司收购了Fox软件公司后,先后推出了FoxPro 2.5、2.6。1995年开始,Microsoft公司先后推出了适用于Windows环境的VisualFoxPro 3.0(简称VFP 3.0)、VFP 5.0、VFP 6.0,其中VFP 5.0和VFP 6.0既适用于Windows95/ 98操作系统环境,又适用于WindowsNT 3.5/4.0操作系统环境。本书的内容是基于Windows95/98环境下的VFP 6.0中文版。

§2.2VFP功能与特点

1可视化开发工具

2增强的项目管理器

3丰富的开发工具

4面向对象的程序设计

5良好的兼容性

6多用户访问

7比较完善的数据字典

8支持网络应用VFP主要是针对中小型企业和个人用户相关的DBMS产品:MicrosoftAccess,SQLserverOracle,Sybase,Informix,DB2,……§2.3.安装环境

在安装VisualFoxPro6.0之前,我们要了解VisualFoxPro6.0的硬件和软件必备环境,做好安装前的准备工作。

IBM兼容机,具有8048650MHz以上处理器。

鼠标。

内存为16MB。

硬盘的最小空间为15MB;用户自定义安装需要100MB

硬盘空间;完全安装所有联机文档需要240MB硬盘空间。

VGA或更高分辩的显示器。

对于网络操作,需要有一个与Windows兼容的网络和一个网络服务器。

Windows98或WindowsNT以上操作系统的支持。§2.4启动与退出VFP2.4.1.启动VisualFoxPro6.0

几种方法

(1)从“开始”菜单启动

“开始”“程序”MicrosoftVisualFoxPro6.0选项。

(2)从资源管理器中启动

利用资源管理器找到\VFP98目录,再从\VFP98目录下找到VFP6图标,双击左键。

(3)从“运行”对话框中启动

打开“开始”菜单,进入“运行”窗口;在对话框中输\VFP6.EXE。2.4.2.退出VisualFoxPro6.0

几种方法

(1)在VFP主菜单下,打开“文件”菜单,选择“退出”选项;

(2)按Alt+F4组合键;

(3)按Ctrl+Alt+Del组合键,进入“关闭程序”窗口,按“结束任务”按钮;

(4)在“命令”窗口,输入命令QUIT,并按回车。§2.5VFP应用开发环境VisualFoxPro是一个关系数据库的操作和应用程序开发的集成环境,它的用户界面的窗口外观和工作方式,与Windows及Windows的其他应用程序类同。

WIMP界面即:Windows,Icons,Menus和Pointingdevice

标题栏菜单栏工具栏

状态栏工作区域命令窗口1.标题栏

标题栏位于屏幕界面的第一行,它包含系统程序图标、主屏幕标题、最小化按钮、最大化按钮和关闭按钮五个对象。

(1)系统程序图标

单击系统程序图标,可以打开窗口控制菜单,在窗口控制菜单下,可以移动屏幕并改变屏幕的大小;双击系统程序图标,可以关闭系统。

(2)主屏幕标题

主屏幕标题是系统定义的该窗口名称。

(3)最小化按钮

单击“最小化”按钮,可将系统的屏幕缩小成图标,并存放在Windows桌面的底部的任务栏中。

(4)最大化按钮

单击“最大化”按钮,可将系统的屏幕定义为最大窗口。

(5)关闭按钮

单击“关闭”按钮,可将关闭VisualFoxPro系统。

2.主菜单栏

主菜单栏位于屏幕的第二行,它包含:文件、编辑、显示、格式、工具、程序、窗口和帮助八个菜单选项。当单击其中一个菜单选项时,就可以打开一个对应的“下拉式”菜单,在该“下拉式”菜单下,通常还有若干个子菜单选项,当选择其中一个子菜单选项时,就可以执行一个操作。

3.工具栏

初次打开VisualFoxPro时,工具栏位于菜单栏下面,用户可以根据需要用鼠标将它托到任意位置。

VisualFoxPro系统提供了不同环境下的十一种常用的工具栏,它们是:常用工具栏、布局工具栏、表单控件工具栏、表单设计器工具栏、查询设计器工具栏、视图设计器工具栏、数据库设计器工具栏、报表控件工具栏、报表设计器工具栏、调色板工具栏和打印预览工具栏。

4.命令窗口

命令窗口位于菜单栏和状态栏之间,是VisualFoxPro系统命令执行、编辑的窗口。在命令窗口中,可以输入命令实现对数据库的操作管理;也可以用各种编辑工具对操作命令进行修改、插入、删除、剪切、拷贝、粘贴等操作;还可以在此窗口建立命令文件及运行命令文件。命令窗口的使用可以通过“窗口”菜单控制。在“窗口”菜单下,选择“隐藏”,可以关闭命令窗口。选择“命令窗口”,可以弹出命令窗口。

5.工作区

在工具栏与状态行之间的一大块空白区域是系统工作区,各种工作窗口将在这里展开。

6.状态行

状态行位于屏幕的最底部,用于显示某一时刻的管理数据的工作状态。状态行可以随时关闭或重新打开。如果Setstatus是Off状态,屏幕上不出现状态行;如果Setstatus是On状态,屏幕上有状态行出现。

如果当前工作区中,没有表文件打开,状态行的内容是空白;如果当前工作区中,有表文件打开,状态行显示(表名、表所在的数据库名、表中当前记录的记录号、表中的记录总数、表中的当前记录的共享状态)等内容。

主窗口包括:标题栏、菜单栏、普通工具栏、状态栏、命令窗口和工作区域。当进入不同的开发界面时,还会出现项目管理器窗口、表单设计窗口、菜单设计窗口、属性窗口等设计界面。关于VFP的菜单、工具栏、向导、生成器、设计器、项目管理器等,参见课本。以后结合应用再作具体介绍。

§2.6设置工作环境“工具”菜单中“选项”“文件位置”确定(临时有效)设置为默认值(永久有效)初学者留意:

F1联机帮助快捷莱单(鼠标右键)§2.7项目管理器项目管理器是VFP的“控制中心”,可以用项目管理器处理数据,组织、管理各种对象和文件,在建立表、数据库、查询、表单、报表以及应用程序时,都可以通过项目管理器完成。项目管理器的打开方式:1.用MODIFYPROJECT命令

2.用资源管理器(.pjx)

§2.8向导、生成器和设计器(1)向导(Wizards)VFP系统为用户提供许多功能强大的向导。用户通过系统提供的向导设计器,不用编程就可以创建良好的应用程序界面并完成许多对数据库的操作。例如,利用[表向导]建立数据表,利用[表单向导]建立表单;利用[查询向导]建立标准查询等。

(课本P22表1.2)(2)生成器(Builders)VisualFoxPro系统提供的生成器,可以简化创建和修改用户界面程序的设计过程,提高软件开发的质量。每个生成器都由一系列选项卡组成,允许用户访问并设置所选对象的属性。用户可以将生成器生成的用户界面直接转换成程序代码,把用户从逐条编写程序、反复调试程序的工作中解放出来。

(课本P24表1.4)(3)设计器(Designers)VisualFoxPro系统提供的设计器,为用户提供了一个友好的图形界面。用户可以通过它创建并定制数据表结构、数据库结构、报表格式和应用程序组件等。

(课本P23表1.3)§2.9VFP的文件类型:扩展名文件类型扩展名文件类型.app生成的应用程序.frx报表.exe可执行程序.frt报表备注.pjx项目.lbx标签.pjt项目备注.lbt标签备注.dbc数据库.prg程序.dct数据库备注.fxp编译后的程序.dcx数据库索引.err编译错误.dbf表.mnx菜单.fpt表备注.mnt菜单备注.cdx复合索引.mpr生成的菜单程序.idx单索引.mpx编译后的菜单程序.qpr生成的查询程序.vcx可视类库.qpx编译后的查询程序.vct可视类库备注.scx表单.txt文本.sct表单备注.bak备份文件§3.1数据类型数据是反映客观事物属性的记录。通常分为数值型和字符型两种基本类型。数据类型一旦被定义,就确定了其存储方式和使用方式。VisualFoxPro系统将数据细化分为以下十三种类型。

(1)字符型

(Character)字符型(C型)数据可以包含任何可显示的ASCII码字符,包括字母、数字、汉字、符号、空格等,长度范围是0~254个字符,使用时必须用定界符单引号,双引号,方括号括起来。

‘’、“”、[]

(2)数值型

(Numeric)数值型(N型)是由数字(0~9)、小数点和正负号组成。最大长度为20位(包括+、-和小数点)。

(3)整型

(Integer)整型(N型)表示整数,仅用于字段变量,数据占4个字节。(4)浮点型

(Float)浮点型(N型)与数值型等价,为与其它软件的兼容而设。(5)双精度型

(Double)双精度型(N型)是更高精度的数值型数据,只用于字段变量,固定占用8个字节,并采用固定长度浮点格式存储。(6)货币型

(Currency)货币型(Y型)用来表示货币值,系统默认的货币符号是“$”

(7)日期型

(Data)日期型(D型)用于表示日期,用默认格式{mm/dd/yyyy}来表示,长度固定为8位,yyyy表示年,占4字节,mm表示月,占2字节,dd表示日,占2字节。(8)日期时间型

(DataTime)日期时间型数据是描述日期和时间的数据。

其默认格式为{mm/dd/yyyyhh:mm:ss}。

其中yyyy代表年,前两个mm代表月,dd代表日,hh代表小时,后两个mm代表分钟,ss代表秒,长度固定为8位。

(9)逻辑型

(Logical)逻辑型数据(Logic)是描述客观事物真假的数据,用于表示逻辑判断结果。

逻辑型数据只有真(.T.)和假(.F.)两种值,长度固定为1位。(10)备注型

(Memo)备注型数据(Memo)用于存放较长的字符型数据类型。可以把它看成是字符型数据的特殊形式。

备注型字段固定占4个字节,用来存储一个指向备注文件(.FPT)的指针,实际数据长度仅受限于现有的磁盘空间。(11)通用型

(General)通用型(G型)用于存储OLE对象,可以是电子表格、文档、图片等。仅适用于表中的字段,固定占4个字节,实际数据长度仅受限于现有的磁盘空间。(12)字符型(二进制)与字符类相似,但若代码页(不同语系代码)改变时,其值并不会随之改变,即VFP不会自动转换成相应国家的语系。

(13)备注型(二进制)与字符型(二进制)一样,当代码页改变时,其值不会随之改变。

§3.2数据存储类型(常量、变量)

3.2.1常量

在数据处理过程中其值不发生变化的量叫常量。1.数值型(N型)数值型常量是由数字0—9、小数点、正负号和E(科学计数法)组成的数值。如整数:100,-35

小数:2.54358

科学计数法如:1.2E+5表示1.2乘以10的5次方。

0.3926E1,2.7E02

2.字符型(C型)字符型常量是由“

”、‘

’、[]括起来的字符或字符串。例如,“ABCD”、’No_4’、[北京]、“I’mastudent”等。注意:引号和括号必须是英文字符3.

逻辑型(L型)只有逻辑“真”值和逻辑“假”值两个值,真:.T.、.t.、.Y.、.y.

假:.F.、.f.、.N.、.n.4.货币型(Y型)货币型常数是以“$”作为前缀的数值,如$986.35、$1234.5678。保留四位小数如:$231.12345,实际在计算机里存放的是:$231.12355.日期型(D型)日期常量是用{}括起来的日期形式的常量。如{10/01/1992},{10/01/92},{10-01-92}。严格的日期格式YMD(VFP默认){^yyyy-mm-dd}或{^yyyy/mm/dd}。如{^2000-09-20},{^2000/10/01}。6.日期时间型(T型)日期时间型常量也用{}括起来表示,如{10/01/928:45}严格的日期时间格式为:

{^yyyy-mm-dd[hh[:mm[:ss]][a|p]]}或

{^yyyy/mm/dd[hh[:mm[:ss]][a|p]]}

如{^2000-09-208:45}2.3.2

变量

在命令操作和程序运行过程中其值允许变化的量称为变量。

一、内存变量

定义内存变量时应取名并赋初值,变量建立后存储于内存中,并可以改变其值,直到清除该变量。

内存变量的命名规则:

变量名可以由字母、数字、下划线和汉字组成,但第一个字符不可以是数字,至多128个字符,不可与系统保留字同名。

内存变量的定义和赋值

在内存变量赋值同时,也定义了内存变量及数据类型。[格式1]STORE<表达式>TO<内存变量表>[格式2]<内存变量>=<表达式>例:NAME="李华"STORE5*4TOA,B,C?NAME?A?NAME??'同志'?'NAME=',NAME结果:李华20李华同志NAME=李华二、数组变量数组:按一定顺序排列的一组内存变量。

“先定义后使用如定义:DIMENSION|DECLAREa(2,3),b(4)

赋值:a=4,b(1)=“foxpro”a(2,1)=3等价a(4)=3三、字段变量表的各个字段都是字段变量use学生表?学号go5?姓名内存变量和字段变量同名时:字段变量优先,若要显示内存变量,用?m.编号或?m->编号四、记录记录是表中的一行字段的集合。五、对象对象是构成程序的基本单位和运行实体。§3.3函数函数是系统内部预先编制好的一组程序,分别实现某些特定的运算或操作。函数的一般调用形式:<函数名>([<参数1>,<参数2>,……])其中函数名是系统规定的,参数可以是一个或多个,也可为空,即:函数名(),但圆括号不能省略。

VFP提供了200余种函数,常用函数P50表2.7~表2.11。按功能可划分为:数学函数、字符串函数、日期和时间函数、类型转换函数、测试函数。1、数学函数(数值函数)

(1)求绝对函数ABS

格式:ABS(〈数值表达式〉)

?ABS(-4)结果为4

(2)求整函数INT

格式:INT(〈数值表达式〉)

?INT(4.8)结果为4

(3)四舍五入函数ROUND

格式:ROUND(〈数值表达式〉,〈保留小数位〉)

功能:按保留小数位指定的位数对〈数值表达式〉的数值进行四舍五入。

?ROUND(3.14159,3)→3.142

?ROUND(3.14159,0)→3(4)指数函数EXP、平方根函数SQRT、

格式:EXP|SQRT(〈数值表达式〉)

?EXP(2)→7.39

?SQRT(9)→3

(5)取模(求余数)函数MOD

格式:MOD(〈数值表达式1〉,〈数值表达式2〉)

功能:取〈数值表达式1〉除以〈数值表达式2〉的余数。?MOD(20,3)→2(6)求最大值MAX、最小值MIN

格式:MAX|MIN(〈表达式1〉,〈表达式2〉)

功能:求〈表达式1〉和〈表达式2〉中的大者、小者。2、字符串函数

(1)判子字符串位置AT

格式:AT(〈字符表达式1〉,〈字符表达式2〉,〈数值表达式〉)

功能:求〈字符表达式1〉在〈字符表达式2〉中第〈数值表达式〉次出现的起始位置。〈数值表达式〉默认值为1。

说明:①若〈字符表达式2〉中不包含〈字符表达式1〉,则函数值为零;

②大小写字母在检索中视为不同。?AT("OK","COMPUTEROKOK",2)→12?AT("数据","计算机数据管理系统")→7

?AT("BOOK","COMPUTER")→0

(2)求子串函数SUBSTR

格式:SUBSTR〈字符表达式〉,〈起始位置〉[,〈长度〉]

功能:对〈字符表达式〉从给定的〈起始位置〉开始截取指定长度的字符,生成一个新的字符串;

?SUBSTR("110102490217041",7,6)→490217(3)取左、右子串函数

格式:LEFT|RIGHT(〈字符表达式〉,〈数值表达式〉)

功能:LEFT从〈字符表达式〉左边截取由〈数值表达式〉的值指定的字符,生成一个新的字符串;

RIGHT从〈字符表达式〉右边截取由〈数值表达式〉的值指定的字符,生成一个新的字符串;?LEFT('FOXPRO数据库管理系统',6)→FOXPRO

?RIGHT('FOXPRO数据库管理系统',14)→数据库管理系统(4)ALLTRIM删除首部和尾部空格格式:ALLTRIM(〈字符表达式〉)

功能:ALLTRIM删除字符串首部和尾部的空格?ALLTRIM(“man”)→man

(5)构造空格函数SPACE

格式:SPACE(〈数值表达式〉)

功能:产生由〈数值表达式〉的值决定的空格数。?“姓名”+SPACE(3)+“李宁”

→姓名李宁(6)字符串长度函数LEN

格式:LEN(〈字符表达式〉)

功能:测定字符串的长度(字符个数)。?LEN('FOXPRO数据库管理系统')→20(7)大小写字母转换函数LOWER|UPPER

格式:(〈字符表达式〉)

功能:LOWER把〈字符表达式〉中的大写字母转换为小写字母;

UPPER把〈字符表达式〉中的小写字母转换为大写字母。?LOWER([FoxPro])→foxpro

?UPPER([FoxPro])→FOXPRO

3、日期和时间函数

(1)系统日期函数DATE

格式:DATE()

?DATE()→99/11/15

(2)系统时间函数TIME

格式:TIME()

?TIME()→08:50:43

(3)年、月、日函数YEAR|MONTH|DAY

格式:YEAR|MONTH|DAY(〈日期表达式〉)

功能:从〈日期表达式〉中求出年份、月份、日份的数值。

?DATE()→99/11/15

?YEAR(DATE())→1999

?MONTH(DATE())→11

?DAY(DATE())→15

4、类型转换函数

(1)字符转换为数值函数VAL

格式:VAL(〈字符表达式〉)

功能:将字符型数据转换为数值型数据。

说明:

①若<字符表达式>由数字字符和小数点组成,则转换成相应的数值,但只保留两位小数,其余小数四舍五入。

②若<字符表达式>由非数字字符打头,则转换为0.00。

③若<字符表达式>由数字字符打头,且混有非数字字符时,则转换到第一个非数字字符。?VAL("1234.5678")→1234.57

?VAL("FoxPro")→0.00

?VAL("1234FOX.5678")→1234.00(2)数值转换为字符函数STR

格式:STR(〈数值表达式〉[,〈长度〉][,〈小数位数〉]))

功能:把〈数值表达式〉的运算结果转换为指定长度的字符串。

?STR(1234.5678,7,2)→‘1234.57’

(3)字符转换为日期函数CTOD

格式:CTOD(〈字符表达式〉)

功能:将符合yy/mm/dd、mm/dd/yy日期格式的字符串转换为相应日期。

?CTOD(‘99/11/15’)→99/11/15

(4)日期转换为字符函数DTOC

格式:DTOC(〈日期表达式〉)

功能:将<日期表达式>转换为相应的字符串。

说明:按mm/dd/yy格式转换;

?DTOC(DATE())→‘99/11/15’

(5)ASCII码值转换为字符函数CHR

格式:CHR(〈数值表达式〉)

功能:将<数值表达式>所表示的ASCII码值转换为相应的字符。

?CHR(65),CHR(97),CHR(48)→Aa0

(6)字符转换成ASCII码值函数ASC

格式:ASC(〈字符表达式〉)

功能:返回<字符表达式>最左边的一个字符的ASCII码值。

?ASC('A'),ASC('a'),ASC('0')→6597485、测试函数

(1)记录号测试函数RECNO

格式:RECNO([数值型表达式])

功能:给出<数值表达式>指定的工作区中打开的数据库的当前记录号。

(2)文件起始测试函数BOF

格式:BOF([数值型表达式])

功能:测试<数值表达式>指定的工作区中库文件记录指针是否指向起始位置。是函数值为逻辑真(.T.),否则为假(.F.)。(3)文件结束测试函数EOF

格式:EOF([数值型表达式])

功能:测试<数值表达式>指定工作区中库文件记录指针是否指向结束位置。是函数值为逻辑真(.T.),否则函数值为假(.F.)。(4)文件测试函数FILE

格式:FILE(〈文件名〉)

功能:测试<字符表达式>指定的磁盘文件是否存在,若存在,函数值为逻辑真(.T.),否则函数值为假(.F.)。

(5)记录测试函数RECOUNT

格式:RECOUNT([数值型表达式])

功能:测试<数值表达式>指定的工作区中数据库的记录个数。(6)数据类型测试函数TYPE

TYPE(“〈字符表达式〉”)返回表达式类型,如N,C,D,L等?TYPE("date()")?TYPE(“[字符表达式]”)?TYPE(".t.")(7)检索测试函数FOUND

与LOCATE,SEEK,FIND,CONTINUE等同用,查到返回.T.,否则.F.(8)库文件名测试函数DBF

返回当前工作区打开的表名§3.4表达式

常量、变量、函数通过运算符连接起来构成表达式。VFP中的表达式有算术表达式、字符表达式、日期表达式、关系表达式、逻辑表达式。1.算术表达式:由常量、变量、函数和算术运算符构成。运算符号:()括号

**或∧乘方,例:3**2或3^2*、/乘、除

%取模(余数),例:15%4结果是3+、-加、减(单目运算为“+”、“-”号)

优先次序同数学相同如一元二次方程的一个根:(-b+sqrt(b**2-4*a*c))/(2*a)2.字符表达式:由常量、变量、函数和字符算术运算符构成。字符运算符有两个:完全链接(+)和去空链接(-)+

:将几个字符串连接成一个新字符串。例:?"ABCD"+"EFGH"+"1234"

结果为:”ABCDEFGH1234”

-

:将第一个字符串尾部空格移到后面一个字符串末尾后,连接成一个新字符串。例:?"莆田"–"学院"+"机电系"

结果为:“莆田学院会计系”

?"莆田"-"学院"-"机电系"+"通信专业"3.日期表达式:日期及时间运算符有“+”和“-”

日期及日期时间型表达式的运算有三种情况:(1)两个日期(时间)型数据相减,表示两个日期相差天数。例:?{^2000-10-01}-{^2000-09-01}结果为30,表示两个日期相距30天。(2)一个日期(时间)型数据加一个表示天数的数值型数据,结果是一个向后推算的日期(时间)型数据。例:?{^2000-09-01}+60结果为{^2000-10-31}?{^2000-09-0117:34}+60结果为{^2000-09-0117:35}(3)一个日期(时间)型数据减一个表示天数的数值型数据,结果是一个向前推算的日期(时间)型数据。例:?{^2000-09-01}–30结果为{^2000-08-02}4.关系表达式:关系表达式对同一类型的数据进行比较运算,比较的结果符合逻辑,其值为.T.;否则为.F.。关系运算符为:

=、

<、

>、<=、

>=、<>或#、==、

$

等于小于大于小于等于大于等于不等于全等于子字符串比较运算规则

①数值型数据按数值的大小比较

②字符型数据按字符从左到右比较

③日期型数据按年、月、日顺序比较

④使用“=”比较字符串时,系统默认为非精确比较,即当“=”左边的字符串与右边的字符串的前半部分或全部相当时,系统均认为相等,即.T.。如:?‘ABCDE’=‘ABC’→.T.可以使用SETEXACTON|OFF命令设置精确比较或非精确比较。例:?2+3=6→.F.

?‘C1’<‘C2’→.T.

?‘ABC’==‘ABCDE’→.F.?'student'>'study'→.F.

?'Student'>'study'→.F.

?'CD'$'ABCDEF'→.T.

?'BD'$'ABCDEF'→.F.

SETEXACTOFF(非精确比较)?‘ABCDE’=‘ABC’→.T.?‘ABC’=‘ABCDE’→.F.SETEXACTON(精确比较)?‘ABCDE’=‘ABC’→.F.?‘ABC’=‘ABCDE’→.F.5.逻辑表达式:两个或两个以上的关系表达式,及逻辑型常量、变量、函数,之间用逻辑运算符连接起来,构成逻辑表达式。运算符:.NOT..AND..OR.圆点可以省略。运算规则:

逻辑非(.NOT.):对(.NOT.)右边的L型数据求反;

逻辑与(.AND.):当.AND.两边为真时,结果才为真(.T.);

逻辑或(.OR.):当.OR.两边至少一个为真时,结果为(.T.)。优先次序:逻辑非→逻辑与→逻辑或

运算结果:

.T.或.F.6.运算的优先顺序:课本P49表3-8

算术运算→关系运算→逻辑运算

()括号最优先

例:?3>2AND5+2>5运算结果为.T.?“A”>”B”.OR.4+3<4*3.AND.“D”>”d”

运算结果为.F.?“Ab”>”aB”.OR..NOT.“Ab”>”aB”

运算结果为.T.

习题1、以下数据那些不是字符型数据()A)01/01/98B)”01/01/97”C)”12345”D)”ASDF”2、备注型字段的长度固定为()A)8B)1C)4D)103、STR(109.87,7,3)的值是()A)109.87B)”109.87”C)109.870D)”109.870”4、若要将字符串“莆田学院”按竖排显示,试用字符函数将其实现5、在逻辑运算中,依照哪一个优先级进行运算?()a)not-or-andb)not-and-orc)and-or-notd)or-and-not6、xs表中有10条记录,其中2条已逻辑删除,在VFP命令窗口输入setdeleon,在用count命令数记录,问共有几条记录?()a)2b)8c)10d)12习题7.在一对多关系中,表A的一个记录在表B中可以有多个记录与之对应,表B中的一个记录在表A中()记录与之对应。A)最多只能有一个B)可以有二个 C)也可以有多个D)一般没有8.执行下列操作中,不能获得VFP帮助信息的是()。A)单击VFP工具栏上的按钮B)在Windows下执行Foxhelp.chm文件C)在VFP下执行help命令 D)从“开始”菜单上选择“帮助”选项9.在VFP主菜单上,每个菜单项右侧括号内带有下划线的字母称为()。A)快捷键 B)组合键 C)访问键 D)菜单10.实现“打开”文件功能的快捷键是()。A)Alt+F B)Ctrl+N C)Ctrl+O D)Shift+Open11.关闭VFP主窗口的命令是()。A)clear B)close C)qiut D)closebox1.在桌面上创建VFP6.0快捷方式(分别从“开始”菜单和VFP6.EXE创建)。2.启动VFP6.0,并打开数据库设计器工具栏。3.在VFP命令窗口中依次执行liststatus和clear命令。4.隐藏VFP命令窗口,再显示它。1.执行A1=“计算机”命令后,再执行?type(“A1”)命令,结果显示()。A)A1 B)计算机 C)C D)62.下面各数中,属于常量的是()。A)–203.75 B)计算机 C)T D)9/3/013.依次执行Ab=12和aB=“VFP”命令后,再执行?Ab+aB命令的结果是()。A)12 B)VFP C)12VFP D)VFPVFP.4.系统变量有70多个,这些变量名都是以()开始。A)字母 B)汉字 C)下划线 D)数字5.执行dimensiona(5)命令后,再执行?a(5)命令,结果显示()。A)0 B)1 C)a(5) D).F.6.执行?len(“VFP课程”)命令后的结果显示()。A)“VFP课程”

B)VFP课程 C)5 D)77.执行?left(“VFP课程”,3)命令的结果显示是()。A)VFP B)VFP课程 C)3 D)5

§4.1表的建立表:是指存放在磁盘文件中的一张二维表。自由表:不属于任何数据库的表。数据库表:包含在一个数据库中的表。区分数据库表和自由表,实现两者的转换(1)建立表结构建表分两步骤:(2)数据的输入

一、创建表的结构

建立表结构就是定义各个字段的属性(字段名、字段类型、字段宽度、小数位数等)。

利用表设计器定义数据表的结构,操作方法有二种。

【方法一】

从VFP系统的主菜单,打开“文件”→“新建”→选择“表”→“新建文件”→输入新建的表名→在“表设计器”窗口,逐一定义表中所有字段名、类型、宽度和是否建立索引,完成对数据表结构的建立。

【方法二】

命令格式:CREATE[〈表文件名〉]

通用型字段用于存储多媒体数据。

通用型字段数据的输入

打开通用型字段窗口的命令:MODIFYGENERAL<通用字段>通用型字段的数据可通过剪贴板粘贴,或通过编辑菜单的插入对象命令来插入图形。

WINDOWS应用程序之间交换数据的两种方法:对象的链接与嵌入(ObjectLinkingandEmbedding,简称OLE)

通用字段数据的编辑

使用图形编辑工具

二、表数据的输入(注意通用型字段的操作)

通用型字段数据的删除

通过编辑菜单→清除§4.2表的维护表结构维护通常利用表设计器来修改表的结构,(1)用菜单调出表设计器:打开所需的表文件→从显示菜单中调出的表设计器(2)用命令调出表设计器:USE<表文件名>MODIFYSTRUCTURE表记录的维护表记录的添加、修改、删除§4.3表的维护命令

1.记录的定位

GOTOP|BOTTOM

GO<数值表达式>

2.记录的移位

SKIP[<数值表达式>]3.插入新记录(在当前记录前或后插入)

INSERT[BLANK][BEFORE]

4.追加新记录(在表尾追加)

APPEND[BLANK]

INSERTINTO表名[(字段1[,字段2,…])]VALUES(表达式

1[,表达式2,…])

APPENDFROM<文件名>[常用子句][其它子句]

5.逻辑删除

(加删除标记)DELETE[<范围>][for<条件>]如:deleallfor性别=“男”6.物理删除命令

(删除带有删除标记的记录)PACK7.记录恢复命令(去掉删除标记)

RECALL[<范围>][for<条件>]如:recallallfor性别=“男”8.物理清除所有记录

ZAP

相当于DELETEALL+PACK9.成批修改数据

REPLACE<字段名1>WITH<表达式1>[ADDITIVE][,<字段名2>WITH<表达式2>

[ADDITIVE]]…[范围][FOR<条件>][WHERE<条件>]

如:usesbreplaceall价格with价格-1000

replace备注

with‘,’+编号+名称additivefor主要设备

通过使用过滤器和字段表,可为一个表设置逻辑表,设置好后,则对该表的任何操作都一直有效,直到撤消逻辑表为止。一、过滤器设置:SETFILTERTO<条件>例:usesbsetfilterto价格>1800撤消:SETFILTERTO

二、字段表设置:SETFIELDSTO[[<字段名1>[,<字段名2>…]]|ALL

例:usesbsetfieldsto编号,名称,部门撤消:SETFIELDSOFF

§4.4逻辑表的设置§4.5表的索引1.索引的概念

索引是一种逻辑排序方法,它不改变当前表的物理排列顺序,而是按关键字的升序或降序建立一个与当前表文件相对应的索引表,表中的指针指向原表的对应记录。表文件中的记录被修改或删除时,索引文件可自动更新。2.索引的种类

(1)按扩展名分:复合索引.CDX

单索引.IDX(2)按功能分:

普通索引:允许关键字重复值可作一对多永久关系中的“多方”唯一索引:允许关键字重复值,但输出无重复值为与前版本兼容而设置候选索引:不允许关键字重复值,可用作主关键字,可在永久关系中建立参照完整性主索引:不允许关键字重复值,仅用于数据库表,可在永久关系中建立参照完整性一张表最多只能有一个主索引(3)索引的创建P73

单字段的索引涉及多字段的索引§4.6数据工作期

数据工作期是一个用来设置数据工作环境的交互操作窗口。可打开的表及其索引,建立多个表之间的关联等。

利用数据工作期来建立环境还有以下优点:

(1)用命令来建立环境需有一定的经验,而数据工作期窗口对操作有向导作用,比较方便。

(2)在数据工作期设置的环境可以作为视图文件保存起来,需要时将视图文件打开就能恢复它所保存的环境。一、数据工作期窗口

例3-9二、视图文件数据工作期设置的环境可以作为视图文件保存,以便在需要时恢复它所保存的环境。

文件名.VUE

1、视图文件的建立

(1)菜单操作

(2)命令操作

CREATEVIEW<视图文件名>

2、视图文件的打开打开视图文件意味着恢复环境,相当于重新执行一系列先前设置的命令。(1)菜单操作

(2)命令操作

SETVIEWTO<视图文件名>

三、工作区

1、工作区:

VFP的工作区号:1~32767,其中1-10→A-J(工作区别名)

2、表别名

(1)VFP自动使用文件名作为默认表别名。

(2)可用USE<文件名>ALIAS<别名>来指定表别名。

3、工作区的使用

SELECT<工作区号>∣<别名>

&&指定要打开表的工作区号

SELECT0

&&选定当前尚未使用的最小号工作区

SELECT()

&&返回当前工作区号

别名.字段名

&&引用其它工作区中打开的表的字段

USE<表名>IN<工作区号>∣<别名>&&在指定的工作区打开表,但不改变当前工作区

四、表的关联

1、关联的概念

所谓关联,就是令不同工作区的记录指针建立一种临时的联动关系,使一个表的记录指针移动时另一个表的记录指针能随之移动。

关联条件:

(1)建立关联的两个表,一为父表,一为子表。父表记录指针的移动,会使子表记录指针自动移到满足关联条件的记录上。

(2)必须先为子表的字段表达式建立索引。

多一关系:父表有多条记录对应子表中的一条记录

一多关系:父表的一条记录对应子表中的多条记录2、在数据工作期窗口建立关联

(1)一般步骤课本P84页

(2)例3-10

3、用命令来建立关联(1)建立关联(一父表可与一个或多个子表关联)

SETRELATIONTO[<表达式1>INTO<别名1>,…,

<表达式N>INTO<别名N>][ADDITIVE]

课本P87页

(2)解除关联:

SETRELATIONTO

(3)说明一多关系:

SETSKIPTO[<表别名1>[,<表别2>]…]

(4)取消一多关系:

SETSKIPTO习题一、选择题1.不能打开当前表编辑窗口的命令是()。A)append B)change C)edit D)replace.2.对于自由表,1个字段名最少需要1个字符,最多不能超过()个字符。A)2 B)5 C)10 . D)2543.基本上是由数码组成的学号或电话号码,设计结构时,一般采用()数据类型。A)字符型 B)数值型 C)备注型 D)序号型

4.在表文件中,如果包含有2个备注型字段和1个通用型字段,则创建表文件后,VFP将自动建立()个FPT文件。A)0 B)1. C)2 D)35.在设计表结构时,允许用户定义字段宽度的数据类型是()。A)数值型. B)日期型 C)逻辑型 D)备注型6.不能关闭当前表文件的命令是()。A)browse. B)use C)colsetable D)clearall7.如果要以独占方式打开db2.dbf表,应使用的命令是()。A)usedb2all B)usedb2lock C)usedb2sharedD)usedb2exclusive8.对于当前表来说,依次执行List命令和?Eof()命令后,最后显示的内容是()。A)1 B)10 C).T. . D).F.9.物理删除当前表中所有记录的命令是()。A)deleteall B)pack C)recallall D)zap10.在当前表中,如果“金额=数量*单价”,则可用()命令自动填写所有记录的“金额”字段值。A)browse金额=数量*单价 B)replaceallje=sl*djC)replaceall金额with数量*单价 D)replacealljewithsl*dj11.如果在第1、2、5工作区中分别打开一个表,则执行usestu23in0命令后,stu23.dbf表打开在()工作区中。A)0 B)1 C)3 . D)612.对82年出生而且是团员的记录(出生日期,birth,D;是否团员,member,L),建立筛选条件的命令是()。

A)setfiltertobirth=1982andmember=.T. B)setfiltertoyear(birth)=1982andmember.C)locateforbirth=1982andmember=.T. D)indexonbirth=1982andmember=.T.tostu913.项目文件的默认扩展名是()。

A)item B)dbc C)dbf D)pjx.14.如果要在项目中创建程序文件,应该选用()选项卡。

A)数据 B)文档 C)类 D)代码.15.如果要打开“数据库设计器”工具栏,可以选择()菜单

选择“工具栏”进行操作。

A)文件 B)显示. C)格式 D)工具

§4.1数据库一、数据库的基本概念

为减少数据的冗余,保护数据的完整性,数据库集中了一系列相互具有数据联系的表,并且各表之间建立了若干固定的关系(关联)。一个数据库包括:数据库表本地视图、远程视图连接、存储过程二、用数据库设计器设计数据库

P109例3-26

数据库设计器

CREATEDATABASE<数据库名>

三、用项目管理器管理数据

项目管理器用于组织和管理项目中的文件,即建立、修改、查看这些文件,可作为应用系统开发维护的控制中心。P110例3-27创建命令:CREATEPROJECT<项目名>

打开命令:MODIFYPROJECT<项目名>§4.2数据词典

数据词典用于保存对数据库中各种数据的定义或设置信息,包括表的属性、字段属性、记录规则、表间关系,以及参照完整性(ReferentialIntegrity,简称RI)等。

注意,只有数据库表的数据才有数据词典。自由表没有。一、长名(长表名/长字段名)与注释

VFP允许在数据词典中为表/字段设置不超过128个字符的长名,以及对表/字段增加适当的注释。长表名/长字段名一般能在浏览窗口或各种设计器的标题栏内显示;而注释则通常出现在项目管理器的底部。二、设置字段级规则:用于字段数据输入正确性的检验,在插入或修改字段值时被激活。格式

格式文本框用于键入格式表达式,确定字段在浏览窗口、表单或报表中显示时采用的大小写、字体大小和样式。输

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论