内部资料江苏二级vfp要点.docx
《内部资料江苏二级vfp要点.docx》由会员分享,可在线阅读,更多相关《内部资料江苏二级vfp要点.docx(129页珍藏版)》请在冰豆网上搜索。
内部资料江苏二级vfp要点
第一章数据库系统基础知识(复习要点)
第一章数据库系统基础知识
1.1数据库系统概述
1.数据处理
数据:
它包括两类:
一类是能参与数字运算的数值型数据;一类是不能参与数字运算的非数值型数据,如文字、图画、声音、活动图象等。
数据处理:
是对各种类型的数据进行收集、存储、分类、计算、加工、检索与传输的过程。
包括:
收集原始数据、编码转换、数据输入、数据处理、数据输出。
2.数据库系统
(1)数据库(DataBase)
定义:
是以一定的组织形式存放在计算机存储介质上的相互关联的数据的集合。
特点:
具有最小的冗余度、具有数据独立性、实现数据共享、安全可靠、保密性能好
(2)数据库管理系统(DataBaseManagementSystem)
定义:
是操纵和管理数据库的系统软件。
VisualFoxPro属于一种关系型数据库管理系统。
数据语言:
数据定义语言(DDL):
用来建立所需的数据库。
数据操作语言(DML):
用来对数据库进行查询和维护操作。
关系型数据库使用的标准语言是结构化查询语言(StructuredQueryLanguage,SQL)。
(3)数据库系统(DataBaseSystem)
定义:
是以数据库应用为基础的计算机系统。
组成:
数据库
硬件(计算机硬件设备)
软件(数据库管理系统、操作系统)
用户(应用程序设计员、终端用户、数据库管理员)
分类:
层次型数据库、网状型数据库、关系型数据库
分代:
第一代非关系型数据库系统,60年代末问世,包括层次型和网状型。
第二代关系型数据库系统(RDBS),70年代中期问世。
第三代对象-关系数据库系统(ORDBS、OOBDS),80年代中期至今。
上述三个概念之间的联系:
在数据库系统中通过数据库管理系统来建立和使用数据库。
3.关系模型
三个领域:
现实世界→事物(对象、性质)
观念世界→实体(对象、属性)
数据世界→数据(记录、字段)
实体模型:
即反映事物联系的实体。
数据模型:
即描述实体模型的数据。
数据模型的分类:
层次模型(采用树型结构)
网络模型(采用无向图型结构)
关系模型(采用二维表结构)
关系模型的性质:
(1)二维表的记录数随数据的增加而改变,但其字段数是相对固定的;
(2)二维表中的每一列均有唯一的字段名;(3)二维表中不允许出现完全相同的两行二维表中行的顺序、列的顺序均可以任意交换。
外部关键字:
当A表的主关键字被包含到B表中时,则称A表的主关键字为B表的外部关键字。
1.2VisualFoxPro6.0概述
1.VFP6.0的特点
完善了关系型数据库的概念,采用了Rushmore技术,引入了SQL命令;支持多种数据交换格式;采用了可视化的面向对象的程序设计方式;提供了功能完善的集成环境和丰富的开发工具。
3.VFP6.0的工作方式
(1)菜单操作方式
(2)命令交互方式
(3)程序执行方式
4.VFP6.0常用文件类型
VFP6.0常用的文件扩展名及其关联的文件类型(看书本P31)
5.创建文件
新建各种类型的文件时,可以利用系统提供的相应工具,以提高工作效率。
新建文件时可用的设计器和向导。
1.3项目管理器
1.项目管理器简介
项目管理器:
[图例]
是开发VFP应用系统的一个工具,它生成一个项目文件,项目文件的扩展名为.PJX,项目备注的扩展名为:
.PJT。
项目管理器窗口的组成:
由6大类数据项(全部、数据、文档、类、代码、其他)和10个命令按钮(新建、添加、修改、浏览、关闭、打开、预览、运行、移去、连编)组成。
注:
粗斜体表示的命令按纽根据用户选择的不同对象相应地出现。
项目菜单的组成:
13个子菜单(其中一部分与项目管理器中的命令按钮功能相同)。
项目管理器的功能:
组织和管理所有与应用系统有关的各种类型的文件。
2.创建项目文件
用菜单方式:
打开文件菜单→新建→项目→新文件→给出合适的项目文件名及保存位置→进入项目管理器→开发应用系统→
完成后关闭窗口退出。
用命令方式:
语法:
CREATEPROJECT<项目文件名>
功能:
打开项目管理器窗口进行应用系统的开发。
3.修改项目文件
用菜单方式:
打开文件菜单→打开→找到所需的项目文件并确定之→进入项目管理器→修改应用系统→完成后关闭窗口退出。
用命令方式:
语法:
MODIFYPROJECT<项目文件名>
功能:
打开项目管理器窗口进行应用系统的修改。
4.项目管理器的使用
可以利用项目管理器来创建、打开、浏览、修改所有VFP文件并运行其中的表单、报表、标签、菜单、程序等。
特别是可以利用它来连编项目(追踪这些文件的变化情况,包括它们之间的相关性、引用和连接等,确保引用的完整,并加入自上次连编之后更新了的一些组件)、应用程序(扩展名为.APP,在VFP环境下执行)和可执行文件(扩展名为.EXE,能脱离VFP环境执行)。
1.4VFP6.0的一些规则
1.VFP6.0的命名规则:
·只能使用字母、下划线和数字。
·使用字母或下划线作为名称的开头。
·名称可以是1至128个字符,但自由表的字段名和索引标识最多只能有10个字符。
·避免使用VisualFoxPro的保留字。
·文件的命名遵循操作系统的约定。
2.命令和子句的书写规则
(1)以命令动词开始;
(2)各部分之间要用空格隔开;
(3)命令、子句、函数名都可简写为前4个字符,大、小写等效;
(4)一行只能写一条命令,总长度不超过8192个字符,超过屏幕宽度时用续行符“;”;
(5)变量名、字段名和文件名应避免与命令动词、关键字或函数名同名,以免运行时发生混乱。
(6)命令格式中的符号约定:
命令中的[]、|、…、<>符号都不是命令本身的语法成分,使用时不能照原样输入,
其中:
[]表示可选项,根据具体情况决定是否选用
|表示两边的部分只能选用其中的一个
…表示可以有任意个类似参数,各参数间用逗号隔开
<>表示其中内容要以实际名称或参数代入
3.命令工作方式中的常见错误
(1)命令动词写错
(2)格式不符合要求
·标点符号不对(一定要用英文标点符号)
·缺少必需的空格或添加了不该有的空格
·数据类型不一致,要注意字符型、数值型、日期型、逻辑型数据的书写格式
(3)打不开所需文件:
没有正确输入盘符和路径或文件名输错
第二章VFP语言基础(复习要点)
第二章VFP语言基础(复习要点)
第二章VFP语言基础
2.1程序设计概述
1.程序设计方法简介
设计方法主要概念设计过程程序执行方式
结构化程序设计功能模块(即过程、自定义函数)编制各个功能模块,再用主程序将它们串起来将应用程序分解成若干功能模块,通过各模块的相互调用来完成整个执行过程,是过程驱动的。
面向对象程序设计类、对象、属性、事件、方法设计类、子类、对象(设计外观、设置属性、为事件编写方法程序)将应用程序分解成具有特定属性的对象,通过调用各对象的不同方法来完成相关事件,是事件驱动的。
2.数据类型(看书本P35)
VFP包含下列数据类型:
3.数据容器
VFP中用来存储数据的容器有:
常量、变量、数组、记录和对象。
(1)常量(constants):
一个在操作过程中保持不变的数值或字符串。
常用的常量类型
常量类型;数值型常量;字符型常量;逻辑型常量;日期型常量
表示方式-25.36"abc","123","中国".T..F.{^2005/07/10}
(2)变量(variables):
是内存中的一个存储单元的位置,其中的内容可以变化,但标识该存储位置的名称(即变量名)不变
变量的赋值方式:
1)用STORE命令如:
STORE"王兰"TOcStud
2)用赋值操作符=如:
cStud="王兰"
变量的作用域:
即变量起使用的有效范围。
变量作用域定义作用域的关键字特点
局部变量
local
variable(本地变量)LOCAL只能在一个函数或过程中被访问,其他过程或函数不能访问此变量的数据。
当其所属程序停止运行时,局部变量将被释放。
私有变量
privatevariablePRIVATE私有变量在VFP
中是默认的,不需要特殊的关键字定义。
但是,如果在更高一级例程(routine)中已经有同名变量,可以用PRIVATE
关键字予以声明,以限定其范围。
当定义此变量的例程结束时,此变量也被相应释放。
可使用私有变量在被调用的函数中共享数据。
公共变量
public
variablePUBLIC可用于所有过程和函数,而不限于定义该变量的过程和函数。
可使用全局变量在多个过程或函数之间共享数据,在命令窗口中创建的任何变量自动具有全局属性。
变量的访问:
当变量和字段同名时,字段有优先被访问权。
要在变量名前加m.或m->以示区别,如m.cStud
(3)数组(array):
是存储在一个变量中由单个变量名引用的有序数据集合。
在VFP中,一个数组中的数据不必是同一种数据类型。
常用的有一维数组,二维数组。
数组元素的标识:
通过一个数值下标来引用,如AA[2],AA[2,3]
数组类型的声明:
私有数组——用DECLARE或DIMENSION定义
全局数组——用PUBLIC命定义
局部数组——用LOCAL定义
数组元素的赋值:
用赋值语句:
如AA=45
用SCATTER从当前记录中取特定字段的值赋给数组:
如:
scatterfieldsxh,xm,xbtoaa
(数组长度、类型自动与所给字段相同)
用COPYTOARRAY从当前记录中取所有字段的值赋给数组:
如:
copytoarrayaa
(数组长度、类型自动与表中全部字段相同)
把数组中的数据传给当前表中的当前记录:
gatherfrom数组名[fields字段名表]
用数组向当前表添加记录:
appendfromarray数组名[for条件][[fields字段名表]
(用二维数组可以同时添加多条记录)
数组处理的常用函数:
排序SORT(),搜索ASCAN(),删除ADEL(),插入AINS()
(4)记录:
表中的一行,由字段组成。
(5)对象:
对象是类的一个实例,类是对拥有数据和一定行为特征的对象集合的描述。
VFP对象可以是表单、表单集、控件。
2.2VFP6.0的语言成分
1.命令
即:
由用户发出的、指示VFP进行某种操作的指令。
2.函数
即:
一个预先编制好的模块,可由VFP程序在任何地方调用。
函数的使用方法:
名称、功能、参数、返回值
几个常用函数
名称命令格式示例
字符串截取函数SUBSTR(expC,expN1[,expN2])?
SUBSTR(“ABCDEFG”,2,4)
结果是:
BCDE
字符串查找函数AT(expC1,expC2[expN])?
AT(“B”,“ABCDE”)结果是:
2
大小写字母转换函数LOWER(expC)?
LOWER(“DFGHa”)结果是:
dfgha
UPPER(expC)?
UPPER(“asdf”)结果是:
ASDF
数值函数
ABS(expN)?
ABS(-15.83)结果是:
15.83
INT(expN)?
INT(25.62)结果是:
25
压缩空格函数ALLTRIM(expC)?
ALLTRIM("ADBG")
结果是:
ADBG
类型转换函数STR(expN1[,expN2][,expN3])?
STR(789.678,6,2)结果是:
789.68
CTOD(expC)?
CTOD(“98/10/15”)
结果是:
98/10/15
VAL(expC)?
VAL("123.45")结果是:
123.45
DTOC(expD)?
DTOC({98/12/15})
结果是:
98/12/15
日期时间函数DATE()?
DATE()结果是:
2000/03/15
DATETIME()?
DATETIME()
结果是:
2000/03/1510:
15:
30
YEAR(expD)?
YEAR({87/03/25})结果是:
1987
数据库函数RECNO()DBC()SEEK()其它函数LEN()DELETED()
EOF()BOF()FOUND()EMPTY(exp)INLIST(,,)
RECCOUNT()SELECT()BETWEEN(,,)IIF(,,)
TABLEREVERT()LOCK()CHR()ASC()
TABLEUPDATE()FSIZE()TAG()INKEY()
自定义函数:
由用户为自己的应用程序创建的专用函数,可作为独立的程序文件保存在磁盘上也可作为过程文件存放在其他程序中。
3.表达式
即:
变量、操作符、常量、函数、字段名、控制以及属性的组合,求值结果为单个值。
表达式的类型:
算术表达式:
由算术操作符和数值型数据构成的表达式。
字符表达式:
由字符操作符和字符型数据构成的表达式。
日期表达式:
由日期操作符和日期、时间型数据构成的表达式。
逻辑表达式:
由逻辑操作符和逻辑型数据构成的表达式。
名称表达式:
由圆括号括起来的一个字符表达式,用来替换命令或函数中的名称。
例:
DBF_NAME="学生成绩登记表"
USE(DBF_NAME)
用宏替换(看书本P44)符号&表示,功能是替换出字符变量的内容。
例:
已知A="1",B="2",C12="GOOD"
则C&A&B="GOOD"
4.操作符
数值操作符()^或***/%(取余数)+-
关系操作符<<=>>=<>或!
=或#==
逻辑操作符()表达式分组NO或!
(非)AND(和)OR(或)
日期和时间操作符+-注意:
日期型:
天数时间型:
秒数
字符操作符:
+-$
两个特殊的操作符圆点操作符(.):
用于分隔对象的名称以及分隔对象中的属性、事件、方法。
范围转变操作符(:
:
):
提供了从一个子类中调用一个父类的方法。
2.3程序设计基础
1.基本概念
程序:
为解决某一问题而设计的一系列指令。
主程序:
通常被用户直接执行的程序。
子程序:
在程序中被调用的程序。
源程序:
由人用源语言编写的计算机程序,必须翻译成机器语言后才能被执行。
目标程序:
是源程序经过编译后所产生的机器语言程序。
可执行程序:
源程序被编译后产生的可被机器直接执行的程序,具有.EXE扩展名。
在VFP中是指由项目管理器连编生成的、可脱离VFP环境运行的程序。
应用程序:
指为完成专门工作而设计的一组相互联系的例行程序和子程序。
在VFP中是指一组VisualFoxPro
程序、表单、菜单和其他文件经项目管理器连编后形成的单个程序,不能脱离VFP环境运行,扩展名为.APP。
例行程序:
按某种顺序排列的、使计算机能执行某种任务的指令集合,可以是一种专用的程序或作为程序的一部分。
它可由若干个子程序组成。
2.程序控制
(1)顺序语句
(2)分支语句
条件语句:
情况语句:
IF条件
命令组1
[ELSE
命令组2]
ENDIFDOCASE
CASE情况1
命令组1
CASE情况2
命令组2
…
[OTHERWISE
其它命令组]
ENDCASE
3.循环语句
FOR
循环语句(预知循环次数)FOR变量=初值TO终值[STEP步长]
命令组
ENDFOR|NEXT
DOWHILE
循环语句(未知循环次数)DOWHILE条件
命令组
ENDDO
SCAN
循环语句(针对全部记录)SCAN[范围][FOR|WHILE条件]
命令组
ENDSCAN
循环结构中的LOOP命令和EXIT命令:
LOOP是短路语句,表示从此开始下一次循环;
EXIT是退出语句,表示跳出循环。
4.子程序
子程序的的形式可以是一个程序文件,也可以是一个过程或自定义函数。
子程序自定义函数过程
特点:
(1)总是被其他程序调用而不单独执行,可以调用其他子程序,不一定要返回一个值。
(2)能以一个独立的文件储存,也可包含在调用程序中,必须返回一个值。
是一个程序段,是程序的组成部分,一般放在程序的最后。
定义方法与程序相同,只是在子程序的结尾加需一条返回命令:
RETURN[表达式|TOMASTER|TO程序文件名]FUNCTION函数名
或:
MODIFYCOMMAND函数名
PARAMETERS(parameters)数表
命令组
RETURN表达式
注:
用此命令定义的函数以独立的文件形式储存。
PROCEDURE过程名
PARAMETRS参数表
命令组
RETURN
调用方法DO子程序名[WITH参数表]=函数名(参数表)DO过程名WITH参数表
3.创建应用程序
方法一:
在命令窗口中输入:
MODIFYCOMMAND程序名
方法二:
单击文件菜单→新建→程序→新文件→在编辑窗口中编辑程序→完成后关闭→给出合适的程序名及保存位置。
程序的注释
给程序加注释的目的是。
面向过程的程序设计三步曲:
输入→处理→输出
4.修改应用程序
方法一:
在命令窗口中输入:
MODIFYCOMMAND程序名|?
注:
?
表示不知道程序名,要从打开对话框中选定。
方法二:
单击文件菜单→打开→选择所需程序并打开→在编辑窗口中对程序进行修改→完成后关闭退出。
5.执行应用程序
方法一:
在命令窗口中输入:
DO程序名|?
方法二:
从程序菜单中选择执行→从打开对话框中选择所需程序并执行之。
6.程序设计的基本步骤
(1)问题说明
(2)分解问题
(3)编制各模块
(4)测试并完善各模块
(5)组装全部模块
(6)整体测试
第三章表的创建和使用(复习要点)
第三章表的创建和使用(复习要点)
第三章表的创建和使用
3.1VFP6.0表
1.表的概念
表(数据表):
是指存放在磁盘文件中的一张二维表。
(相当FoxPro2.x版本中的数据库)
自由表:
不属于任何数据库的表。
数据库表:
包含在一个数据库中的表。
表文件名:
表名可以由字母、数字或下划线组成,系统自动给出的扩展名为.DBF。
备注文件名:
当表中有备注型或通用型字段时,系统自动生成与所属数据表的表名相同、扩展名为:
.FPT的文件名。
表结构:
存储表记录的公共结构。
(就是指一张表的表头结构,即字段的属性)。
记录:
表中的一行。
它是多个字段的集合,同一张表的每个记录都有相同的字段。
字段:
表中的一列。
它规定了数据的特征。
关系型数据表的特点:
(1)每一个字段不可再分解,也不能有名字相同的字段;
(2)每一列中的数据都有相同的数据类型;
(3)表中没有内容完全相同的行(记录)。
2.字段的基本属性
字段的属性:
包括:
字段名、数据类型、字段宽度、小数位数、空值支持
字段名:
即每个字段的名字,必须以字母开头,可由字母、数字、下划线组合而成,字母大、小写无区别,但其中不许有空格或其它字符。
自由表的字段名最多由10个字符组成,数据库表的字段名支持长名,最多可达128个字符。
如果从数据库中移去一个表,那么此表的长字段名将被截短成
10个字符。
VFP允许长字段名和长表名,但使用长名称对于跨平台的操作可能遇到难以预料的结果。
数据类型:
指该字段的数据特征。
字段宽度:
指该字段所能容纳数据的的最大字节数。
小数位数:
指数值型数据将保留几位小数。
此时的字段宽度=整数位数+1+小数位数。
NULL值(空值):
无明确的值。
NULL值不等同于零或空格。
一个NULL值不能认为比某个值(包括另一个NULL值)大或小,相等或不同。
VFP6.0表中字段的数据类型
字段类型代号说明字段宽度使用示例
字符型C字母、汉字和数字型文本每个字符为1个字节,最多可有254个字符学生的学号或姓名,"8199101"或'李立'
货币型Y货币单位8个字节工资,$1246.89
日期型D包含有年、月和日的数据8个字节出生日期,
{^1980/07/08}
日期时间型T包含有年、月、日、时、分、秒的数据8个字节上班时间,
{^2005/02/209:
15:
15AM}
逻辑型L“真”或“假”的布尔值1个字节课程是否为必修课,
.T.或.F.
数值型N整数或小数在内存中占8个字节;在表中占1至20个字节考试成绩,83.5
双精度型B双精度浮点数8个字节实验要求的高精度数据
浮点型F与数值型一样
整型I不带小数点的数值4个字节学生的数量
通用型GOLE对象在表中占4个字节图片或声音
备注型M不定长度的一段文字在表中占4个字节学生简历
字符型(二进制)C任意不经过代码页修改而维护的字符数据每个字符用1个字节,最多可有254个字符
备注型(二进制)M任意不经过代码页修改而维护的备注数据在表中占4个字节
3.表的基本操作
表的创建:
设计表名和表结构、输入记录、建立索引
数据维护:
增加记录、修改记录、删除记录
创建表的主要步骤:
设计表结构→输入记录→建立索引→数据维护
4.关于表操作的几个基本命令
命令格式功能
CREATE表文件名创建一个新的自由表的结构
USE表文件名打开指定的表文件
USE关闭当前表文件
LISTALL显示当前表的全部记录内容(类似于DOS命令中的dir)
DISPLAYALL分屏式地显示当前表的全部记录内容(类似于DOS中的dir/p)
DISPLAYSTRUCTURE显示当前表的结构(分屏显示)
LISTSTRUCTURE显示当前表的结构(不分屏显