第一章 Visual FoxPro概述.docx
- 文档编号:4246636
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:15
- 大小:69.63KB
第一章 Visual FoxPro概述.docx
《第一章 Visual FoxPro概述.docx》由会员分享,可在线阅读,更多相关《第一章 Visual FoxPro概述.docx(15页珍藏版)》请在冰豆网上搜索。
第一章VisualFoxPro概述
第一章VisualFoxPro概述
1.1表、关系模型和数据库1
1.2VFP是数据库管理的简单语言2
1.3FoxPro的历史地位、VFP8.0版本和展望10
1.4VFP的窗口、菜单及其它15
1.5用命令窗口工作(CommandWindow)17
1.1表、关系模型和数据库
21世纪是知识经济的时代,组织和利用知识信息的有力武器—数据库将继续得到广泛应用。
数据库(Database,即DB)20世纪50年代,美国为战争的需要,把各种情报集中在一起,存入计算机。
60年代数据库帮助设计了阿波罗登月火箭,推动了数据库技术的产生。
70年代,数据库蓬勃发展,网状系统和层次系统占领了市场,并且关系数据库理论也日趋完善。
80年代起,关系数据库产品已相当成熟,后来有了分布式数据库系统(DitributedDatabaseSystems),数据库机(DatabaseMachines)、知识库(KnowledgeBase)系统和知识机。
现在,数据库技术已成为计算机领域最重要的技术之一,它是软件学科中一个独立分支(即研究数据库的结构、存贮、设计和使用的一门软件学科)。
图1-1就是数据库中的一个表。
姓名
地址
城市
省名
邮编
电话号码
编号
刘先生
237信箱
成都
四川
610041
(028)88824788
0003
李红
581信箱
北京
北京
010000
6775041
0001
郭亮
457信箱
宜宾
四川
620000
398883
0002
一个数据库的信息通常组织和存贮在表(Table)的形式中,各个表具有行和列。
例如上表所示,各行包括姓名、地址、城市、省名、邮编、电话号码、编号。
各行与另外的行相关,因为它们全都包括相同类型的信息。
又具有“姓名”列、“地址”列、“城市”列等属性,如“姓名”列中有刘先生、李红、郭亮三个数据(即属性值)。
这样由行和列组成一个表,即一个表文件。
一个表文件中,行叫表的记录,列叫表的字段。
数据库加上相应的操作和管理数据库的软件,即为一个数据库管理系统(DBMS),它能合理地组织和存贮大量数据,并支持对于数据库表中数据的各种操作,如:
更新、排序、索引、查询、列表、打印等。
数据库系统是实现有组织地、动态地存贮大量的相关数据,方便用户访问的计算机软、硬件资源组成的系统,它由数据库、数据库管理系统以及支撑数据库管理系统的软、硬件构成。
在计算机的三大主要应用(科学计算、数据处理与过程控制)中,数据处理所占比重约为70%左右。
数据库技术就是作为数据处理中的一门技术发展起来的,今天它已广泛地应用到工业、农业、商业、国家机关、大专院校、科研单位、金融、财贸和国防军事、情报等各行各业的管理信息系统(MIS)、办公自动化系统(OA)、决策支持系统等领域中。
数据库离不开数据模型。
数据模型是对现实世界客观事物及其联系的描述,它反映数据项之间和记录之间的联系,在数据库技术中使用模型的概念描述数据库的结构与语义。
常用的三种数据模型是:
层次模型(HierarchicalModel)、网状模型(NetworkModel)和关系模型(RelationalModel)。
此外,还有面向对象模型(Object-OrientedModel)等。
关系模型把数据之间的关系看成是一个二维表关系,因二维表关系是建立在集合代数关系理论基础上的,所以把这种建立在关系模型基础上的数据库称为关系数据库。
上节的图1-1所示的那张二维表就是关系数据库中的一个表文件,即是一个关系。
二维表中行和列分别对应记录和字段,这里不再赘述。
但要注意的是字段又有关键字(段)与一般字段之分:
在一个关系中用来区分不同记录的属性(字段)称之为关键字(段),而可以用来唯一标识一条记录的属性称之为主关键字。
显然上表中,姓名、编号都可以被指定为关键字,但只有“编号”才可以起到主关键字的作用。
可见,数据库与文件系统不同,其数据独立于程序而存在,并可以提供给不同的用户共享使用,其基本思想是对所有的数据实行统一的、集中的、独立于程序的管理。
关系数据库管理系统很好地实现了这一基本思想。
1.2VFP是数据库管理的简单语言
1.2.1一个数据库管理的简单语言
美国微软公司(Microsoft)的VisualFoxPro(它包括VisualFoxPro3.0和VisualFoxPro5.0、6.0、7.0、8.0等,简称VFP)是一个关系数据库管理系统,其语言支持对多个数据库表的设置关系、连接、选择、查询、统计等工作。
请看下面的例子。
例1.2:
将上节中例1.1的问题解决用VFP语言程序实现。
解决此问题做的工作是:
(其中“&&”表示对程序命令功能的注释。
)
工作一:
建立表文件。
CREATA1&&建立通讯地址表A1,它包括姓名、地址、城市、省名、邮编、电话号码、
用户号字段。
并且将三个用户记录的相应数据输入。
CREATB1&&建立用户订单表B1,它包括用户号、商品号、单价、数量、总价字段。
并且将三个用户记录的这些字段的相应数据输入。
工作二:
编程序(命令)
USEA1
INDEXON用户号TOBH
USEB1
INDEXON用户号TOSBH
USE
SELECT2
USEA1INDEXBHALIASBB
SELECT1
USEB1INDEXSBH
SETRELATIONTO用户号INTOBB
LOCATEFOR商品号="14B"
DISPLAY2→姓名,2→地址
屏幕上输出结果:
郭亮457信箱
对这个VFP语言程序作必要的说明:
CREATEA1表示建立表名为A1的表文件。
&&表示其后是注释。
CREATEA1把表结构(各字段型、尺寸)建立好后,问是否输入数据?
此时,可把记录的数据(对应于各字段的)输入,此处输入了三个记录。
CREATEB1除了文件为B1,字段名不同外,建表过程与前面相同。
USEA1表示打开A1表,INDEXON用户号TOBH表示在A1表以“用户号”为关键字索引,并建立索引文件BH。
后面的SBH是B1表以“用户号”为关键字索引后建立索引文件SBH。
单独一个USE后面无表名,表示关闭当前打开的表。
SELECT2表示选择工作区2,在此工作区USEA1INDEXBHALIASBB,表示在工作区2打开A1表和索引文件BH,并将其取别名为BB。
接着两句表示在工作区1,打开表B1和索引文件SBH。
SETRELATIONTO用户号INTOBB,表示将当前工作区1中打开的表B1与在工作区2中打开的A1表(别名号为BB)以“用户号”为关键字建立关系。
LOCATEFOR商品号="14B",表示在当前打开的B1表寻找字段名“商品号”等于"14B"的那条记录。
因为工作区1与工作区2中的表B1和A1以“用户号”为关键字建立了关系,所以当LOCATE语句执行完后,在工作区1的B1表找到“商品号”等于"14B"那条记录的同时,在工作区2的A1表中,指针也指到了与工作区1B1表中相同“用户号”的记录。
DISPLAY2→姓名,2→地址,表示将工作区2中A1表的姓名、地址字段显示在屏幕上,这里是“郭亮”,“457信箱”(其用户号2,在表B1中可见他正是订14B号商品的用户),任务完成。
从上面例子可见,VFP象BASIC语言那样,是面向命令的可以进行各种运算的、简单、实用的语言(只是没有语句标号而已)。
另外作为关系数据库管理系统语言,VFP也有关系数据库语言必须有的两个部分:
数据定义语言DDL(DataDefinitionLanguage)和数据管理语言DML(DataManipulationLanguage)。
DDL建立命名的数据库(表)和管理列(字段)名字和属性,还可进行索引等。
DML主要涉及查询、修改和的增删及数据更新等。
VFP是为了让用户懂得数据库管理普通编程语言而建立的。
它的面向命令的句法包括超过几百条命令和内部函数,还包括SQL(StructuredQueryLanguage)数据库标准语言命令,但使用它的不到20条命令便可完成绝大多数基本数据库管理操作。
前面谈到的本节例1.2程序命令的执行,是在命令窗口(见后面1.5节的图1-4)中以交互式命令方式实现的(在VFP的交互式命令前面不象dBASE和FoxBASE+交互式命令前需要圆点符号),即从键盘上键入一条命令,便执行一条命令。
如果想以程序文件方式执行,则可把这两个程序文件各自命名为P1和P2(任何外部或VFP内部编辑器都可以建立程序文件),只须在命令窗口中先后键入DOP1和DOP2,再分别按回车键便可。
这里特别要指出的几点问题
VFP上述的这些编程命令的功能几乎都可以用菜单操作来实现而无须编程序(例如用鼠标双击图1-4ˋ程序′菜单中的“运行···”菜单项),同时还会在命令窗口中产生相应的命令句子。
因此,可以用编程运行和菜单操作两种方法来使用VFP,管理关系数据库。
VFP除此之外,还可直接用鼠标双击工具栏(toolbar)内的图标按钮,立即执行一连串操作(例如图1-4工具栏中的打印机图标按钮,双击后可打印),免去以菜单(Menu)操作的许多步骤;VFP的右键单击弹出浮动菜单功能选择也是很方便的使用操作。
另外,使用VFP的可视设计器或者Wizards(向导)可生成VFP的大部分基本文件。
设计器(Designer)分别用于生成表、报表、建立数据库菜单及连接等,用户不必涉及VFP命令,就可以用这些设计器完成各种复杂的工作。
最后还可以将用户自己的全部工程(含所编的程序、表单、报表等)编译成EXE文件,脱离VFP独立运行。
如果认为可视设计器比较复杂、开始使用时有困难,则Wizards(向导)用起来更方便:
用户只需要在Wizard的对话框中回答并做出一系列的选择,Wizard就会自动地根据所做出的选择完成文件或者表格等设计工作,如有问题可单击图1-4中的帮助(Help)菜单或相应界面中的帮助按钮得到VFP电子书或上下文的帮助。
1.2.2VisualFoxPro程序的结构
列举了以上的例1.2和例1.3两个例子,目的是为了说明VFP程序是怎么样的?
VFP程序与关系数据库是什么关系?
至于每个语句的作用和有关使用规则将在以后的章节中陆续介绍。
通过上面两个例子,可以知道并总结如下:
(1)一个VFP程序是由零个或多个文本行组成的ASCII码(美国信息交换标准代码)文件。
可以将两个或更多的物理行组成一个逻辑行(除了最后一个物理行,其它组成此逻辑行的各物理行必须以VFP行连续符号分号“;”结尾)。
(2)各逻辑行能包括一个简单命令动词,其后可跟有可选的附加子句和一个行结束注释。
程序内部可任意混合空白行和带命令的行。
以NOTE和*命令开始的注释连续到逻辑行的结束。
&&符号在一个已经含有命令的行上开始注释。
如果在一行上开始注释,则带有分号的那行也连续此注释。
(3)除了极少数例外,各个命令均以一个动词开始,例如COPY,USE,*或@等。
各动词句法决定什么子句能跟在这行的命令后面。
动词必须是这行上的第一个字词,但也可以用空格和Tab自由地去引导程序结构。
有两个例外,即GOTO和STORE命令的代替形式。
在一行开始的数字文字隐含一个GOTO命令(如:
5表示GOTO5);一个标识符后面跟一个符号(=)和一个表达式形成一个隐含的STORE命令。
在特定情况下,可以省略初始标识符。
除了这几个例外,VFP命令行总是使用如下形式:
Verb[additionalclauses][&&comment]eol这里Verb是动词;additionalclauses是附加子句;&&comment是行结束注释;eol表示行结束;方括号“[”和“]”表示可选择,不是必须的。
(4)许多动词由两个或三个关键字组成,例如DEFINEPOPUP或SETALTERNATETO等。
对于任何特定的动词,其子句能以任何顺序出现。
在某些情况下,子句可重复,不会引起问题。
例如:
APPENDBLANKBEFOREBLANKBEFORE
VFP直接忽略重复的子句。
用户可以任何顺序写子句和一些关键字,如FOR条件或TO文件名,所以下面的例子是等效的:
COPYTO"MyFile"ALLFORName="DK"
COPYALLTO"MyFile"FORName="DK"
COPYFORName="DK"TO"MyFILE"ALL
(5)VFP语言继承了dBASE和FoxBASE+可以将命令或其它关键字缩短到可为四个字符的特点。
例如可以将DISPLAY键入为DISP,DISPL,DISPLA,或DISPLAY,但字母的顺序必须匹配原始命令,不能乱拼写(在这种情况下,DISPLY不会被认识)。
(6)某些命令,例如ENDDO和ENDIF允许注释跟在它们后面,不用&&注释指示符。
(7)VFP还有些不寻常的命令,如TEXT显屏时,将其后的东西照样显示直到遇到ENDTEXT等等。
1.2.3语法形式排印上的约定
本书在给出命令和函数的语法形式时使用了特定的排印方面的约定,通过这些约定表明命令或函数的哪些成份是必须的或是可选的,哪些成份必须按照指定格式输入等等。
为了后面章节使用方便,在本节将这些约定一一给出。
先来看一个典型的VisualFoxPro命令的语法形式。
REPLACE命令可用于修改一个表记录的字段,该命令语法形式是:
REPLACE
…
[
可列出REPLACE命令的诸成份如下:
关键字:
REPLACE,WITH,ADDITIVE,FOR,WHILE,NOOPTINIZE
表达式:
eExpression1,eExpression2,lExpression1,lExpression2(本书正文写成表达式1,表达式2,逻辑表达式1,逻辑表达式2)
名字:
fieldName1,fieldName2(本书正文会写成字段1,字段2。
VFP软件的Help帮助中写成英文)
本书约定如下:
(1)关键字与符号
大写大写形式表明它是一个VisualFoxPro关键字。
每个VFP的命令或函数都至少有一个关键字,VFP就是通过关键字来区别每一个命令或函数的。
因为VFP为内部使用而保留了这些关键字,所以关键字也叫保留字。
在前述REPLACE命令中,关键字有REPLACE(VFP通过它知道是一个命令),WITH,ADDITIVE,FOR和WHILE。
其中WITH,ADDITIVE,FOR和WHILE也叫做子句,因为它们是主命令的附加部分。
<>用尖括号括住有小写字母的文本,表示这些小写字母文本的具体内容必须由用户提供(本书正文为用户方便写成了汉字)。
这些文本信息可以是文件名、表达式或内存变量名等。
文本和尖括号应被恰当的名称或表达式所取代。
在输入命令的时候应去掉尖括号。
()圆括号必须包括在每个VFP的函数中。
在实际输入函数时,必须带上圆括号。
[]方括号表示所括住的命令或函数内容是可选的。
同样,在输入时也不要带上方括号。
例如,REPLACE命令中就有相当多的可选项,具体选择或不选择这些项由用户决定。
像ADDITIVE,
|,或|?
?
用垂直短线分开的可选项表示这些只能选择其中之一。
输入时不要带上垂直短线。
…省略号表示一个命令或函数或其中某一部分以类似方式延续下去。
例如,函数INLIST()需要大量的参数,在它的语法形式中,就是通过省略号来表示它可以包含更多的参数。
INLIST(
(2)表达式
注意:
Expression前面的小写字母c,n,d,t等分别表示字符型、数值型、日期型、日期时间型等;而Expression是标识符,它的英文意义“表达式”即是此标识符的意义。
例如:
如果在同一个命令或函数中有多个相同类型的表达式,则在表达式后加上数字,以表明它在该命令或函数中的位置。
例如,函数CHRTRAN()的语法形式如下:
CHRTRAN(
(3)名字
使用名字列表时,名字与名字之间必须用逗号相分隔。
(4)缩写说明
VFP命令和函数常用的缩写和术语如表1-1所示。
表1-1
缩写含义 缩写含义
ADDITIVE保留或保住的意思 alias工作区别名
ASC升序 borderstring边界定义字符串
column屏幕或窗口列 commandfoxpro命令
delimiter定界符(分隔符) dir目录
drivr磁盘驱动器名DESC降序
FOR<条件>选择 key索引表达式
list表达式、字段等的集合 macroname键盘宏名
memofield备注字段名 NOOPTIMIZE禁止进行快速优化
parmlist参数列表 path磁盘目录路径说明
port串行或并行输出端口名 procedurename过程文件名
row屏幕或窗口行 scope表.DBF记录的范围
skel文件说明框架 statementsfoxpro命令集合
textlines非foxpro命令的正文 topicFoxPro帮助文件中的主题
WHILE当<条件>选择 workarea表.DBF的工作区。
(5)例子及其它约定
例子约定
setup光秃秃的字母字型是必须键入的字,而不是语言命。
SETHELPTO大写字母表示命令和关键字、首字母缩略词、常量和设备名。
按CTR+ALT+F1"+"号表示键组合。
AUTOEXEC.BAT大写字母表示文件名字。
C:
\BAT大写字母带斜杠分隔符表示路径名字。
FontSize首字母大写表示对象、属性、事件和方法的名字。
如果名字由多于一
个字组成,则首个字被后面的字连在一起。
nTotal,cName小写字母冠于量名等之前,这个前缀指定变量数据的类型:
c表示字
符型,n表示数值型,l表示逻辑型,d表示日期型,t表示日期时间
型,y表示货币型,e表示任意型表达式。
1.3FoxPro的历史地位、VFP8.0版本和展望
1.3.1FoxPro是由与dBASE全兼容的FoxBASE+发展而来的关系数据库管理系统
VFP、一般FoxPro、FoxBASE以及dBASE都属于叫作xBbase的数据库管理系统范畴。
xBASE最初源于1972年开发的JPLDIS(JetPropulsionLaboratoryDatabase-ManagementandInformationRetrievalSystem)的主机DBMS。
当IBM-PC微型计算机和兼容机在80年代普及的时候,美国Ashton-Tate公司开发的dBASEⅡ很快出现,作为牵头的数据库管理程序。
dBASE的交互式命令可使用户很方便地建立、编辑数据库和打印报表,并且dBASE还包括一个简单易学的运用语言,编程者使用它能为客户建立菜单驱动定制的应用程序。
不想学习dBASE的商务用户可让编程者为他编应用程序,让他们能从菜单选择和编辑数据,精确地打印其需要的报表。
dBASE的这些功能,使它成了最普及的微机数据库管理系统。
在其最高峰,估计大约有80%至85%的IBMPC和兼容机的数据库应用程序使用dBASE。
dBASE成为一种工业标准。
dBASEⅡ之后,紧接着是dBASEⅢ和dBASEⅢ+,它们都增加了许多功能,但存在不少限制,用户为之抱怨。
批评家说,dBASE告诉用户的东西少于任何现存的另外的程序。
甚至出名地保守的DOS,至少显示一个提示告诉你在做什么,但dBASE仅显示一个圆点,几乎不给用户任何提示。
用户不得不记住全部必须在圆点之后的精确键入的命令,否则就会出错。
编程人员的抱怨不同于用户,他们抱怨诸如dBASE不能建立数组等,但最普遍的抱怨是dBASE没有包括一个“编译器”。
dBASE属于解释程序,比编译程序慢得多。
而
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第一章 Visual FoxPro概述 FoxPro 概述