第一章VFP系统环境及配置VFP:1.1关系数据库管理系统用于存储,维护,分类,检索,统计和分析应用程序主界面:由主窗口(菜单)和程序系统菜单组成。程序系统菜单由菜单栏(条形菜单)和弹出菜单(子菜单)组成。功能界面:1.2使用VFP的目的在于建立数据库,维护数据库,完成日常任务,编写应用程序等。1.3VFP系统主界面由菜单栏,工具栏,主窗口,命令窗口和状态栏组成。工作方式:1)通过系统菜单执行命令2)利用工具栏按钮执行命令3)在命令窗口中输入命令4)编写程序1.4系统默认将执行命令的结果发送到VFP主窗口,系统信息窗口,图形状态栏或用户自定义窗口。配置:临时配置:执行Set开头命令永久配置:1.51.项目管理器:创建和管理数据库,程序,查询,表单,菜单,报表和类库等对象的有可视化文件。(项目文件扩展名:PJX)2.在项目管理器中可以建立,添加,修改或删除对象。方法:选定对象类名或对象名,随后执行“项目”菜单或项目管理器中相关命令。命令:设置默认目录:setdefaultto日期格式设置:1.将日期型数据年份设置成4位(on)或2位(off)setcentury……2.调整日期格式:setdate(日期格式名)命令第二章VFP表达式级应用数据:程序加工处理的对象,以某种特定的形式存在。不同的数据类型存储方式与运算方法不同。表达式:运算符连接常数,变量和函数等构成的运算式。2.1数值型数据:N占8个字节,表示1—20位数据字符型常数是整数或实数,可用科学计数法表示字符型数据:C半角英文字符占一个字节,一个汉字或全角字符占二个字节字符型常数:用定界符括起来的一串字符日期型数据:D占八个字节,常用大括号括起来。有传统和严格两种格式。传统格式受setdate和setcentury命令影响,默认格式为:{mm/dd/yy}。严格格式为{yyyy-mm-dd}命令:setstrictdateto0(传统日期格式)/1(严格)日期时间型数据:T占8个字节日期型数据由日期和时间两部分组成逻辑性数据:L占一个字节2.2变量:内存变量:分为简单变量和数组变量,不能以数字开头。字段变量内存变量赋值:是内存变量有确切值的操作命令格式:内存变量名=表达式store表达式to内存变量名表输出表达式:?表达式??输出表达式2.3运算符:对数据进行操作的符号数值运算符:优先级别顺序:+-(取正负)/**^(乘方)/*/%(乘除求余)/+-(加,减)求余方法:数值型函数:绝对值函数:abs数值表达式平方根函数:sqrt求余函数:mod(A/B)A除以B的余数最大值和最小值函数:max()min()求整函数:int()输出整数部分Ceiling大于等于最小整数Floor小于等于最小整数四舍五入函数:round字符串长度函数:len所含字符的字数字符串起始位置函数:at区分大小写Atc不分大小写年份函数:year星期函数:dow字符转换成数值函数:val2.4字符运算符:+-字符型函数:生成空格函数:space删除空格函数:ltrim去首部空格Trim去尾部空格Rtrim去尾部空格Alltrim去两端空格取左字串函数:left取右字串函数:right取任意字串函数:substr大小写字母转换函数:lower大写转换小写Upper小写转换大写系统时间函数:time()格式:hh:mm:ss[]精确到秒[1]精确到百分秒数值转换成字符函数:str数值表达式长度(默认10)小数位数(默认0)1.长度=0空串2.长度整数位数长度6输出一串*,否则用科学记数法表示3.()长度整数位数小数位数=长度—小数位数—1日期转换成字符函数:dtoc数据类型函数:varitype直接测试表达式Type测试字符常数内容2.5日期运算符:+-日期与数值运算日期日期与日期运算日期间相差天数日期型函数:系统日期函数:date输出当前时间字符转换成日期函数:ctod2.6字符型数据的比较规则:命令格式:setexacton精确比较规则Setexactoff非精确比较规则字符数据的排序次序:命令格式:setcollateto[machine]︼大写字母小写字母汉字2.7逻辑运算符:非运算:.not.not!与运算:.and.And或运算:.or.or逻辑型函数:文件存在函数:file测试文件名是否存在2.8宏替换2.9数组:一组变量名相同而下标不同的内存变量,最多含65000个元素命令格式:dimensionA[行下标列下标]Declare第三章关系数据库设计基础设计数据库包括需求分析,概念设计,逻辑设计和物理设计4个环节。3.1数据库表:存储于计算机外存储器中的电子表,是有格式要求的二维表。数据语义:人们对数据含义的规定与解释。3.2关系:在关系数据库中,将二维表称为关系。关系模式:对关系的描述,是关系名及其所有属性的集合。关键字:关系模式中能唯一地标识元组,最少属性的集合。主属性:包含在某个关键字中的属性。第四章数据库的建立与维护数据库用于存储数据库表,文件扩展名为DBC4.1数据库是一种容器,用于组织和管理数据库表,视图,关系,存储过程和连接等。4.2建立数据库:createdatabase打开数据库:opendatabase设置当前数据库:setdatabaseto数据库名修改数据库:modifydatabase删除数据库:deletedatabase[数据库名][recycle]—是否放入回收站(是)关闭数据库:closedatabases关闭当前数据库Closedatabaseall关闭所有打开数据库Closeall关闭所有文件4.3表设计器是建立表的主要工具建立数据库表,进入表设计器,依次输入表中字段名,数据类型,字段宽度和小数位数。字段名:二维表中列的名称,最多可有255个字段,不允许出现同名字段。命名不能以数字或下划线开头。数据库表中最多可含有128个字符。字段类型和宽度:数据库表的常用属性:输出格式:输入掩码:修改表结构:modifystructure4.4自由表:不属于任何数据库的表(比数据库表设计简单)数据库表:属于某个数据库的表差异:自由表字段名最大长度为10个字符,数据库表为128个字符。不能为自由表设置字段输入/输出属性不能为自由表设置某些规则数据库表转化成自由表:removetable[表文件名]delete(移出数据库,直接从磁盘删除)Recycle(移出,并放入回收站)不用(将表转换为自由表)自由表添加到数据库:addtable4.5工作区是一段内存区域,对工作区进行操作,实质是对相关表进行操作。打开工作区:选择工作区:4.6增加记录:直接输入数据:append[blank]—是否打开输入记录窗口(不打开,仅增加空记录)从其他表(文件)输入数据:appendfrom查看表中记录个数:RecCount删除记录:物理删除:将表中记录直接清除逻辑删除:将要删除的记录加标记(*)后仍存放在表中逻辑删除命令格式:delete[范围]for[条件]范围:All操作表中全部记录Rest当前记录开始到表中最后记录For条件:操作范围内满足条件的所有记录While条件:记录范围内满足条件的所有记录恢复逻辑删除记录:recall物理删除:命令格式:pack彻底删除全部逻辑删除的记录Zap直接彻底删除全部记录修改记录:手动方式:browse[fields字段名表][for条件]EditChange自动方式:replace**with**4.7输出表中记录:list[fields表达式表]Off—不输出记录号输出全部记录,系统没有暂停NoConsole—不在屏幕上显示结果Display[fields表达式表]仅输出当前记录,系统自动暂停显示输出表结构:displaystructureListstructure复制表结构:copystructureto表文件名[fields字段名表]复制表中部分字段或记录:copyto表文件名[fields字段名表]4.8RecNo()函数:显示给定工作区中的当前记录号Bof()函数:记录指针是否移到第一个记录之前(TF)Eof()函数:记录指针是否在表文件的结束记录上(TF)移动记录指针:Go记录号[in工作区号/表别名]GoTop/bottom[in工作区号/表别名]Skip命令:Skip记录个数(m)记录指针向前或向后移动给定的记录个数m0后移m个m0前移m个4.9索引文件:独立索引文件(扩展名:IDX)复合索引文件(扩展名:CDX)如果与表文件有相同主名,称为结构化复合索引文件。索引类型:主索引:候选索引:普通索引:唯一索引:建立索引:indexon打开与使用索引:use表名index[索引文件名表][order****]Setindexto[索引文件名表][order****]Setorderto数据排序:sortto新表名on字段名4.10Locate命令:locatefor条件查找满足条件的记录4.11统计满足条件的记录个数:count对满足条件记录求和:sum(sum1表示对满足条件的记录计数)对满足条件求平均值:average4.12表的关系类型:永久关系(在数据库设计器中建立的表之间的关系)要求每个表都建立索引临时关系(在数据库设计器以外的环境建立的表之间的关系)setrelationto****into****[additive]—保留当前表与其他表的关系清理数据库:packdatabase设置表的参照完整性规则:更新删除插入规则第五章SQL语言与视图设计SQL:结构化查询语言,由数据定义语言,数据操纵语言,数据查询语言和数据控制语言组成。VFP支持前三种。数据定义语言主要用于建立,修改和删除数据库中的各类文件。通过数据操作语言可以在表中增加,删除和修改数据记录。数据查询语言是SQL语言的核心内容,可以对数据进行查询,排序,汇总和表连接等。处理查询结果:输出部分数据行Top数值表达式[percent]与orderby短语结合使用指出查询结果的去处intotable表名Intocursor临时表名Intoarray数组名5.4select语句的合并:对多个查询结果中的数据行进行(纵向)联接SQL语言的语句嵌套:在SQL语言中,在一个语句中使用另一条select语句子查询:嵌套在SQL语句中的select语句(用小括号将每个字查询括起来)主SQL语句:写在最外层的语句语句嵌套中的谓语:AllAny(some)Exists运算5.5设计查询文件(扩展名:QPR):CreateQuery打开与修改查询文件:modifyqueryModifycommand文件主名QPR运行查询文件:Do文件主名QPR5.6用户通过查询只能查看数据,而通过视图既能查看数据,又能更新数据。设计视图:createview修改视图:modifyview视图名建立视图:createview视图名asselect语句视图应用:不仅完成数据查询,统计和分析任务,而且能修改表文件中的数据视图与查询的差异:查询可用于自由表和数据库表,视图只能用于数据库表中。用户只能改视图的运行结果。可以改变查询结果的输出位置,但只能在视图窗口中显示视图的运行结果。Do语句运行查询,直接获得查询结果;Use语句打开视图,需借助VFP表操作命令获得结果数据。第六章结构化程序设计基础6.1程序:能够完成一定任务的一组有序命令的集合。程序中的命令也称为语句。程序以文件形式保存在外部存储器中,与命令方式相比,程序更便于保存,编辑和运行,并且层次清晰,功能模块化。6.2建立源程序:modifycommand按Ctrl+w键,保存文件的同时关闭程序编辑器。打开源程序:modifycommand/?—是否弹出“打开”文本框(打)程序分类:源程序(PRG)编译程序(FXP)应用程序(APP)可执行程序(EXE)执行程序:Do程序文件名6.3数据输入:运行程序是临时输入数据并赋值给变量。数据输出:将表达式的值输出到显示器和打印机等输出设备上。输入字符串语句:Accept字符表达式