【vfp精品源码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了vfp精品源码-【精品】VFP 课件 - 大学课件的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
VFP 教案 第1章数据库系统及
VFP 概述数据管理技术的发展◆ 人工管理阶段◆ 文件管理方式阶段◆ 数据库管理方式阶段1.1 数据库系统的基本概念在 50 年代中期之前,尚无统一的数据管理软件,对数据的管理完全由各个程序员在其程序中进行管理,计算机在数据管理中还没有发挥应有的作用。
5060 年代 随着计算机硬件性能的改进和软件的发展, 出现了文件管理系统。
应用程序通过文件管理系统处理数据,尽管数据单独存放,但很难被其他程序所使用。
60 年代以后 针对以上缺点,计算机工作者经过长期的努力,提出了“数据库”的概念。
数据库技术为数据管理提供了一种高级管理方式。
数据库的特点数据被集成化结构化数据的独立性数据共享数据冗余度小数据的安全性、完整性、并发控制等数据库系统(DBS)1、数据库(DB)2、数据库管理系统(DBMS) 是对数据库进行管理的系统软件,是进行交互的接口。
如:DB2 Informix Oracle SybaseVisual Foxpro 等3、数据库系统(DBS) 组成:DB、DBMS、DBA、计算机软硬件资源等。
冗余:数据重复。
数据应尽可能不重复。
数据独立性:数据的存储尽可能独立于使用它的应用程序。
共享性:以最服务于一个或多个应用程序。
数据库的三级模式结构: 外模式 模式 内模式 数据库的两层映像: 外模式/模式映像 模式/内模式映像数据库系统体系结构DBS:是实现有组织地、动态地存储大量关联数据,方便用户访问的计算机软硬件资源所组成的具有管理数据库功能的计算机系统。
三者之间的关系: DB 和 DBMS 是 DBS 的组成部分。
用户通过 DBMS 建立使用 DB。
使用 DB 是目的,而 DBMS 是实现这一目的的手段和工具。
81 年推出 dBASE ,由 Fox Software 公司推出 FoxBase,其功能和速度比 DBASE 强。
由Microsoft 公司推出 FoxPro,其界面吸引用户。
1995 年推出
VFP3.0,1997 年的
VFP5.0,1998年的
VFP6.0。
1.2 数据模型信息的三个世界:认识抽象现实世界信息世界概念模型数据世界数据模型信息世界:几个术语:实体、实体集、属性、关键字E-R 模型实体-联系模型学生选课实体联系模型数据世界:数据模型:层次、网状和关系模型。
1.3 关系数据库理论基础◆关系模型是用二维表的结构形式来表示实体及实体间的联系。
◆二维表中的每一列称为字段,代表一个属性 每一行称为记录,代表一个实体◆二维表所包含的内容称为关系,代表一个实体集如何将现实世界中的各种复杂相关联的事物最终以计算机及数据库所允许的形式反映到数据库中去呢?这需要转化。
这一过程经历了三个领域。
现实世界:独立于人们意识之外的客观事物及其相互联系。
观念世界:现实世界中的事物在人脑中的反映。
客观事物抽象为实体Entity ,联系抽象为实体间的联系Relation。
在信息世界中对所确定的对象建立了较抽象的信息模型,较流行的一种信息模型设计方法称为 E—R 方法。
实体模型 数据世界:用数据形式反映观念世界中的信息。
形成数据模型。
字段为属性,记录为实体对象。
更能精确表达事物的内在关系。
数据库的核心是数据模型。
有三种基本的数据模型。
模型是一种对研究对象抽象化、形式化的描述。
TeacherTSStudentTS关系模型的性质▲每一列都不可分解。
▲每一列均对应唯一的字段名。
▲不允许出现完全相同的两行。
▲无行序、列序。
二维表中不允许出现完全相同的两行, 即至少能以一列或几列分辨出各行数据。
以什么来分辨各行数据呢?这就是关键字。
关键字key ▲超关键字 ▲候选关键字 ▲主关键字 ▲外部关键字二维表中不允许出现相同的记录。
因而,一张表的一列或几列能把不同记录区分开来(即能唯一确定记录) 。
超关键字:如全体字段构成一个超关键字。
能唯一确定记录,但有多余。
如:学号、姓名、年令、家庭住址 ▲如能用单一的列构成关键字,则称其为“单一关键字”。
▲如用两个或两个以上的列构成关键字,则称其为“合成 关键字”。
候选关键字:能唯一确定记录,且最精练。
如:学号。
关系运算▲传统的集合运算: 并、差、交▲专门的关系运算: 选择、投影、连接菜单系统:动态菜单 工具栏 命令窗口 ▲命令续行:在行尾加分号 ▲插入新行:ltCtrlgtltEntergt 状态栏Visual FoxPro 的集成环境1.4 Visual FoxPro 简介用户使用菜单进行操作,相关的命令将会记录在命令窗口中,便于用户了解命令的使用。
用户可以进行全屏幕的编辑,将光标移至某一命令中,按回车即可执行该命令。
命令中的蓝色字符串为系统保留字。
命令窗口可以用菜单、工具按钮或快捷键ltCtrlgtF2 打开或关闭。
几个常用命令: 和 在
VFP 窗口显示表达式的值CLEAR清屏DIR显示文件目录SET DEFA TO设置默认路径QUIT退出
VFP 系统MD RD文件类型和创建文件类型略 见 P16 创建文件设计器、向导“向导”是一个交互式程序,可以帮助用户快速完成一般性的任务。
“项目”——无“设计器” 、 、 “数据库”“连接类”“菜单”——无“向导”1.5 项目管理器是
VFP 处理数据和对象的主要组织工具。
项目是 文件、数据、文档和对象的集合。
VFP 将它保存为 .pjx 、.pjt 文件。
创建/修改项目 create project modify project 项目间共享文件 一个文件可以同时属于不同的项目。
此文件并未被复制, 项目只存储了对该文件的引用。
Create project 与 Modify project 建立、修改项目。
在建立表、库、查询、表单、报表或创建应用程序时,项目管理器可用来组织和管理所有与该应用系统有关的类型的文件。
VFP 教案 第2章
VFP 的数据数型1. 字符型C 字符型数据由任意字符组成,最长 255 个字符。
2. 数值型N 数值型用来表示整数或小数。
3. 日期型D 日期型用于存储有关年月日数据,占 8 个字节。
如:SET DATE TO YMD SET DATE TO LONG SET CENT ON4. 逻辑型L 只有两个值:真(.T.或假.F.,占 1 个字节。
2.1 数据类型和字段类型打☆者只用于字段,不能用于变量和数组。
日期型: 8 个字节, 例: 占 月 日 其中年 4 字节, 2 字节, 2 字节。
常用格式为 mm/dd/yyyy,表示从 01/01/100012/31/9999。
用括起来表示日期型数值。
使用 SET DATE TO YMD 可以设置日期格式。
5. 备注型M 用于在表中存储文本数据。
占 4 个字节,指向具体的备注内容,其扩展名为.FPT。
6. 通用型G 用于在表中存储 OLE 对象。
占 4 个字节。
7. 货币型Y 占 8 个字节。
需在数字前加上“”符号8. 日期时间型T 占 8 个字节。
默认日期:1899 年 12 月 30 日 默认时间:午夜零点9. 浮点型F 同 数值型10. 双精度型B 占 8 个字节11. 整型I 占 4 个字节打 的只用于表中的字段类型日期时间型数据:00:00:00am11:59:59am 缺省时间和日期为午夜零点,1899 年 12 月30 日。
2.2 数据存储在
VFP 中,允许使用常量、变量、数组、字段和对象作为存储数据的容器。
一、命名规则允许使用字母、下划线、数字、汉字符号;只能以字母、下划线、汉字开头;避免使用
VFP 的保留字;长度为 1 128 个(自由表的字段名、表的索引标识名长度为 10 个。
二、常量 是在整个操作过程中保持不变的量。
字符型常量: , 华 “ABC”‘张’ ,3.15 数值型常量:3.1415926,4.5e-6 逻辑型常量:.T.,.F. 日期型常量:3/15/2002,4/1/1999 10:00am 6.0 版中:2004-10-10 编译时常量:DEFINE OPER “数据非法” 注:在程序中此常量名不能再作为变量名使用。
编译时常量一般只在程序中用,当常量在程序中出现时,一般用 DEFINE ……,便于修改,只需要修改一处,即可完成。
常量一经 DEFINE 定义后, 不能再用作变量名。
三、内存变量简称变量 是内存中的一个存储单元的位置,变量名是存储位置的符号标识。
“按名访问” 1. 变量的创建 格式: 变量名 表达式 或 STORE 表达式 TO 变量名表 例如: X“314” STORE 1 TO ABC 注:以上方法不适用于字段变量。
通过变量名可以访问该存储单元,即内存变量。
A B AB DC 变量是内存中的一个存储单元的位置, 变量名是存储位置的符号标识。
该存储位置中存放的数据在程序操作期间通过该名称来读写。
称为内存变量。
2. 变量的作用域用 LOCAL 指定的变量为局部变量用 PRIVATE 为私有变量用 PUBLIC 为全局变量 在命令窗口中创建的变量被自动赋予全局属性。
3. 变量的访问 若同名的字段、内存变量,则优先访问字段变量。
若特指内存变量,需在变量名前加前缀 M-gt或 M. 例如:M-gtxh 或 M.xh变量只在应用程序运行时或创建它的
VFP 工作区才存在。
可使用 LOCAL、PRIVATE 和PUBLIC 关键字指定变量的作用域。
LOCAL 局部变量:只在创建它们的程序中使用和修改,不能被更高层或更低层的程序访问,程序停止运行时,局部变量和数组将被释放。
PRIVATE 私有变量:将程序中定义的变量在程序中隐藏起来,因而可使用同名变量。
一旦程序停止,所有声明为私有的均可被重新访问。
“屏蔽”同名变量和数组,它用于定义当前程序中的变量和数组,并将以前程序定义的同名变量和数组“隐藏” 。
在当前程序使用 PRIVATE 定义的变量,一旦当前程序运行完毕,返回上一层,将恢复那些被保存的同名变量和数组。
PUBLIC 全局变量:在当前工作期中都能使用。
在命令窗口中创建的任何变量被自动赋予全局属性。
SET TALK OFFlocal val1val2 ampamp去掉val1 10val2 15DO down val1 val2PROCEDURE downPRIVATE val1val1 50val2 100 val1 val2结果:50 100 ampamp 50 100 10 15 10 100四、数组 由一系列被称为元素的有序数据值构成,可以用序号引用这些元素。
数组必须先定义,后使用。
1. 数组的定义DECLARE 数组名空间大小 ampamp私有数组DIMENSION 数组名空间大小 ampamp私有数组PUBLIC 数组名空间大小 ampamp全局数组LOCAL 数组名空间大小 ampamp局部数组例:DECLARE x5数组是一组有序的数组值的集合, 每个数据值称为数组元素。
每个元素在数组中的位置是固定的,通过下标进行访问。
数组也是内存变量。
clearprivate val1val2 ampamp去掉val1 10val2 15DO down val1 val2PROCEDURE downPRIVATE val1val1 50val2 100 val1 val2set proc to bldo down1val1val2Function down1Val11000Val22000100 200010 2000A25 A224 A23“abc” A33.T. A41949/10/012. 数组的使用 定义后的数组自动被赋予.F.值。
例如 DIMENSION A55在给数组赋值时,可以全部赋相同的值,也允许各元素赋不同值。
A25 即给 A 数组从1155都赋上了 25。
五、字段 是表中拥有特定数据类型的命名位置。
六、对象 对象是类的实例。
类是对于拥有数据和一定行为特征的对象集合的描述。
记录是由表中一组字段的集合。
最多有 255 个字段。
在表中以记录为单位进行搜索数据的。
对象是类的实例。
例如:“汽车”是类,每一部就是一个对象。
类是从对象中提取了共性。
2.3 函数 ☆函数是一个预先编制好的计算模块,可供
VFP 程序在任何地方调用。
调用形式:函数名参数表两类: 函数由系统提供的称为系统函数。
由用户定义的称为用户自定义函数。
函数是预先编制好的计算模块,可供
VFP 程序在任何地方调用。
参数是供函数或过程操作的一个值。
如:SGN(1)中的 1 是参数。
在函数中参数可以无,可以为一个或几个。
函数有两类:系统函数和自定义函数。
系统函数分类为五大类:数据类型类、数据库类型、环境类、输入输出类、程序设计类。
CAPSLOCK.T. 将打开ltCAPSLOCKgt键 CAPSLOCKCAPSLOCK 切换ltCAPSLOCKgt键的状态常用系统函数1. 数据类型函数① 数学运算函数ABS 、 INT 、ROUND MOD 、 MAX 、MIN RAND 、SIGN ② 字符函数ALLTRIM、LTRIM、TRIMLEFT、RIGHT 、SUBSTRAT 、LEN 、SPACE INT9.79 INT-2.3 -2ROUND1234.5601235 ROUND1234.56-11234MOD-951 MOD954 MOD-9-5-4 MOD9-5-14-5LEN返回一个数值 LEN“JKL:O”6AT位置值,例: AT‘123’‘001234’3③ 日期时间函数DATE、TIME、DATETIMEYEAR、MONTH、DAY、DOW④ 转换函数STR、VALASC、CHRDTOC、CTODLOWER、UPPER⑤ 数据测试函数TYPE、 BETWEENEMPTY、ISBLANK、ISNULLISALPHA、ISDIGIT、ISLOWER、ISUPPERSUBSTR“ABCDE”23“BCD” LEFT“ABCDE”2“AB” LOWER小写字母 UPPER大写字母 TRIM“ AB ”“ AB” DOW 一周中的第几天 周日为第一天 STR见书 P104 VAL“3””1”31.00 VAL“3E02”300.00 ASC“A” 65 CHR65“A”2. 数据库类① 字段处理函数FCOUNT、FIELD、FSIZE② 记录处理函数BOF、EOF、RECCOUNT、RECNODELETEDFOUND、SEEK③ 索引和关系函数CDX、ORDER、TAG④ 数据库与表函数USED、DBUSEDDBC、 DBFDBGETPROP、DBSETPROPTYPE“3.14”N ISNULL“”.F. ISNULL.NULL..T. ISLOWER 最左为小写为.T.,否则为.F. DELETED 当前记录是否标的删除标记,.T.则加了标记 RECCOUNT当前表或指定表的记录数;FCOUNT返回表字段数目上述两函数需要先打开表。
ORDER返回主控索引标识或文件 TAG返回打开的索引标识名或.IDX 的文件名 DBF返回当前或指定工作区的别名;FIELD返回字段名 INKEY返回一个编号,该编号对应于键盘缓冲区中第一个鼠标单击或按键操作。
每个键或键的组合都有编号。
如:F1 编号为 28SHIFTF1 编号为 84,CTRLF1 为 94,ALTF1 为 104。
例:?INKEY4 (在 4 秒之内,按 F1 键) 28 FILE 如 果 在 磁 盘 上 找 到 指 定 文 件 为 .T. ; FEOF 判 断 文 件 指 针 是 否 在 文 件 尾 部 ;CREATEOBJECT从类定义或支持 OLE 的应用程序中创建对象。
3.其他类函数IIF 、 INKEYFEOF、 FILECAPSLOCK、NUMLOCKCREATEOBJECTTABLEREVERT、TABLEUPDATEGETFILEMESSAGEBOX表达式是变量、操作符、常量、函数、字段名、控件以及属性的组合。
一、字符表达式 字符串连接运算- 字符串连接运算,同时将前串尾空移到串尾 串包含运算,判断左串是否包含于右串中2.4 表达式操作符用来处理同种类型的数据。
VFP5.0 操作符分组:字符操作符、日期和日期时间操作符、逻辑操作符、关系操作符、数值操作符。
操作中需注意两点: 通常,同种类型数据之间才能操作,不同类型数据之间需先转换后操作;操作运算符具有一定的优先顺序。
字符操作符: (连接)、-(删除操作符左侧字符串尾部空格后连接起来)、(比较,查看左串是否在右串中,结果是逻辑值)日期和日期时间操作符: (相加,日期加天数)、-(相减,两日期相减) 日期时间型“相减”得数值型数据。
二、日期和日期时间表达式 相加运算- 相减运算 注意:日期时间日期时间 为错误操作三、逻辑表达式 优先顺序为:.NOT.→.AND.→.OR.四、关系表达式lt 、gt、、ltgt或或、lt、gt 、 串精确相等 比较时的开关状态: SET EXACT ONOFF 指定字符串的比较,是采用精确比较,还是采用左部匹配方案。
逻辑操作符: 、 NOT 或、AND、OR五、数值表达式 优先级为: → 或 → 、/、 → 、-在表达式中,各种运算符的优先级: 字符、日期时间、算术运算符 →关系运算符 →逻辑操作符六.名称表达式 是由圆括号括起来的一个字符表达式,可以用来替换命令和函数中的名称。
例:name“nVar” STORE 12.3 TO name 注: name12.3 错误 例:dname“xs” USE dname f1“xh” f2“xb” BROWSE FIELDS f1 f2例:1. Df_name“js” 区别: use Df_name 文件名 1.amp可替换整条命令 2. Use xs cmd_n“DIR” fld1“xh” ampcmd_n对 fld2 “ xm ” 字段名 cmd_n错 Browse field fld1fld2 2.amp可用以构成表达式 或 browse field ampfld1ampfld2 f_n“js.xm” 3. Df_n“jxsj” 库名 locate for ampf_n“程东萍” 对 Dbf_n “js” 表名 3.有些命令函数中不能用 use df_n””dbf_n Var_n“test”错 4. nvar-” 100” store “test” toVar_n 对 var_n“nvar” ampvar_n对 store 123.4 to var_n var_n 不起作用 nvar 123.4 var_n nvar七.宏替换 形式:amp字符型内存变量 实质:将字符型内存变量的内容代换出来,参与命令、表达式等操作。
例:(接前例) BROWSE FIELDS ampf1ampf2注:宏替换的使用范围比名称表达式广; 如:amp可替换整条命令,可以构造表达式X1“100”X2“300”x1x2 100300x1x2 100300x1x2 100300ampx1ampx2 400ampx1x2 非法Y“1”xampy 100xy 找不到变量八、NULL 值特点:等价于没有任何值;与 0、空串、空格不同;排序优先于其他数据;过程或函数中可以使用 NULL 值;NULL 值可以使用在表达式中NULL 为非真。
当 X 为.F.时, .NULL. AND X 的值为.F.,其它为.NULL.当 X 为.T.时, .NULL. OR X 的值为.T.,其它为.NULL.
VFP 支持 NULL 值,这样降低了表达未知数据的难度,并且可以更方便地与含有 NULL 值的其他产品共同工作。
NULL 的特点:等价于无值,与 0、空串或空格不同,排序优先于其他数据,计算过程与函数中可用 NULL 值,其值影响命令、函数、逻辑表达式和参数的行为。
NULL 不是一种数据.