410 likes | 678 Views
Visual FoxPro 实用教程 (第二版). 刘甫迎 教授. 成 都 电 子 机 械 高 等 专 科 学 校 计算机工程系. 第一章 Visual FoxPro 概述. 1.1 表、关系模型和数据库. 1.2 VFP 是数据库管理的简单语言. 1.3 FoxPro 的历史地位 、 VFP8.0,9.0 版本和展望. 1.4 VFP 的窗口、菜单及其它. 1.5 用命令窗口( Command )工作. 第一章 Visual FoxPro 概述. 简介:
E N D
Visual FoxPro实用教程(第二版) 刘甫迎 教授 成 都 电 子 机 械 高 等 专 科 学 校 计算机工程系
第一章 Visual FoxPro概述 1.1 表、关系模型和数据库 1.2 VFP是数据库管理的简单语言 1.3 FoxPro的历史地位、VFP8.0,9.0版本和展望 1.4 VFP的窗口、菜单及其它 1.5 用命令窗口(Command)工作
第一章 Visual FoxPro概述 简介: 1、数据库管理系统是美国微软公司(Ashto-Tate)推出的, 属于Xbase范畴。该系统对数据的收集、保存、使用等作出了重大的贡献。 2、数据库管理系统的发展:dBASEⅡ — dBASEⅢ— dBASEⅣ—FoxBase —FoxPror(1989年) —Visual FoxPro(关系数据库管理系统较Xbase更上一层楼). 3、Visual FoxPro关系数据库(简称VFP)3.0、5.0、6.0、7.0、8.0版本集Zizerds技术和Rush more技术于一体,使用户可直观地运用界面:菜单、设计器、生成器、向导、精致的窗口及鼠标操作,使原来十分困难的工作例如:查询、报表、邮标、菜单等的制作变得容易。
4 、同时与Xbase数据库语言完全兼容。 5、至今,数据库技术已成为计算机领域最重要的技术之一,它是软件学科中一个独立分支(即研究数据库的结构、存贮、设计和使用的一门软件学科)。已广泛地应用到工业、农业、商业、国家机关、大专院校、科研单位、金融、财贸和国防军事、情报等各行各业的管理信息系统(MIS)、办公自动化系统(OA)、决策支持系统等领域中。
1.1 表、关系模型和数据库 一、数据库(Database,即DB) 存贮在一起的相关数据的集合,是存贮数据的“仓库”。由一个或多个数据表组成。 1.表文件 (扩展名 .DBF) 从上表所知数据是以一定规定存放在一个表中,这个表叫数据表,以文件形式保存就叫表文件,扩展名为.DBF。 数据表文件:由数据库进行管理的表文件。 表文件 自由表文件:末加入或从数据库中释放出来的表文件. 数据是如何存贮于数据库中的呢?我们来看下面例子:
例如:有一学生信息数据库文件STU.DBC,其中含有二个数据表文件:STU1.DBF(学生成绩表文件)、STU2.DBF(学生档案表文件),显示如下:例如:有一学生信息数据库文件STU.DBC,其中含有二个数据表文件:STU1.DBF(学生成绩表文件)、STU2.DBF(学生档案表文件),显示如下: STU1.DBF 学号 数学 计算机基础 马列原理 体育 总分 平均分 962101 90.00 90.00 88.00 94.00 362.00 90.50 962102 90.00 87.00 87.00 78.00 342.00 85.50 962103 91.00 80.00 89.00 84.00 344.00 86.00 962104 92.00 94.00 90.00 92.00 368.00 92.00 962105 78.00 76.00 65.60 90.00 309.60 77.40
STU2.DBF 学号 姓名 性别 出生日期 就读方式 平均分 操行成绩 奖学金 备注 962101 李蓉 女 20/05/78 统招 0.00 优 962102 张天明 男 07/09/77 统招 0.00 良 962104 王小菲 女 08/09/76 统招 0.00 优 962105 党力 男 23/12/77 统招 0.00 及格 观察表可见: (1)一个表中存放的数据之间是具有相关的属性。 (2)大量的数据是按照规定有组织地放在表中,是以二维表形式。 (3)一个表文件由行和列组成,行叫表的记录,列叫表的字段。即在表中,描述对象的项目称为数据项(又称字段),所有数据项组成一个记录,若干个同类记录构成表文件。
2.数据库文件(扩展名为.DBC) 数据库组织、存贮、管理表属性描述文件。一个数据库可包含了一个表或多个表,如上STU.DBC数据库文件有二个表文件. 3.数据库管理系统(Database Management System 即DBMS) 操作和管理数据库中的数据记录的软件。它能合理地组织和存贮大量数据,并支持对于数据库表中数据的各种操作,如:更新、排序、索引、查询、列表、打印等。 4.数据库系统 由数据库、数据库管理系统以及支撑数据库管理系统的软、硬件构成。数据库系统是实现有组织地、动态地存贮大量的相关数据,方便用户访问的计算机软、硬件资源组成的系统。
二、关系模型 数据模型:描述客观事物及其联系、反映数据之间和记录之间的联系。 常用的三种数据模型: 层次模型(hierarchical mode) 网状模型(network mode) 关系模型(relational mode),即:数据之间的关系是一个二维表关系。 上面所讲的数据库就是建立在关系模型上的,所以又叫关系数据库。 分析二维表可知:1、每一行为一条记录,无完全重复的行(主关键字不同)。主关键字:用于区分不同记录的属性(字段),如:编号、学号、准考号、产品号等。2、每一列是一个字段,具有相同的属性。3、每一项是最小的(不可分的)数据项。
如:以“学号”为关键字,可查询二个表中任一学生的情况。如:以“学号”为关键字,可查询二个表中任一学生的情况。 STU1.DBF 学号 数学 计算机基础 马列原理 体育 总分 平均分 962101 90.00 90.00 88.00 94.00 362.00 90.50 962102 90.00 87.00 87.00 78.00 342.00 85.50 962103 91.00 80.00 89.00 84.00 344.00 86.00 962104 92.00 94.00 90.00 92.00 368.00 92.00 962105 78.00 76.00 65.60 90.00 309.60 77.40 STU2.DBF 学号 姓名 性别 出生日期 就读方式 平均分 操行成绩 奖学金 备注 962101 李蓉 女 20/05/78 统招 0.00 优 962102 张天明 男 07/09/77 统招 0.00 良 962104 王小菲 女 08/09/76 统招 0.00 优 962105 党力 男 23/12/77 统招 0.00 及格
应用程序 获取数据 学生成绩统计表(程序1) 数据表STU1 STU2 学生个人简历情况(程序2) 学生奖学金评定(程序3) 结论: 数据库系统与文件系统不同,其数据是独立于程序而存在的,并可提供给多用户共享使用。对所有数据实行统一的、集中的、独立于程序的管理。
1.2 VFP是数据库管理的简单语言 一、一个数据库管理的简单语言 VFP语言由两部份组成: 1.数据定义语言DDL(data definition language),建立命名的数据库(表)和管理列(字段)名字和属性,还可进行索引等。 2.数据管理语言DML(data manipulation language),主要涉及查询和修改以及数据语句的增删等。 VFP有超过400条命令和300多个内部函数,还包括类SQL(Structured Query language)数据库标准语言命令。
例题:编写程序完成:按字段“学号”查询某一个学生。例题:编写程序完成:按字段“学号”查询某一个学生。 程序如下: use stu1 index on 学号 to xh-1 set index to xh-1 accept “请输入查询学生的学号:” to no locate all for 学号=no display 学号, 数学,计算机基础, 马列原理,体育,总分, 平均分 close all • 执行该程序后屏幕显示:请输入查询学生的学号: • 用户从键盘上输入需查询的学生的学号“962104”,然后按Enter • 查询结果显示如下: • 学号 数学 计算机基础 马列原理 体育 总分 平均分 • 962104 92.00 94.00 90.00 92.00 368.00 92.00 ( 演示程序1-1)
二、Visual FoxPro程序的结构 1.一个VFP程序由若干文本组成,每一文本行是一个命令语句(一条语句也可用连续符“;”分写于两行上)。 2.每条命令语句总是以命令动词开头,后跟子句。形式如下: Verb[additional clauses][&&comment]eol 动词 子句 注释 行结束 (可是多个) (顺序可是任意的) (非执行命令) (回车符) Index on 学号 to xh-1 &&建立索引文件 • 3.命令动词或关键字可简写前四个字符 • 如:display —disp create——crea • relation—rela command—comm • 4.程序中的命令语句的先后顺序的排列就是执行时的先后顺序。
三、语法形式排印上的约定 对命令或函数的语法形式,有一定的格式,在排印时给出特定的约定我们在后面的学习中将学习每个语句的格式,必须掌握书写的要求、功能。 例如:显示学号为“962104”的命令: disp all 学号, 数学, 计算机基础,马列原理,体育,总分,平均分 for 学号=“962104” 它的语法形式是: DISPLAY[<范围>][ <字段名1>, <字段名2> …] [FOR<条件>]
本书约定(书P7) 1、关键字与符号 大写; < > ; ( ) ; [ ] ; /; … 2、表达式<Expression> <c Expression> 字符型表达式 <n Expression> 数值型表达式 <d Expression> 日期型表达式 <t Expression> 日期时间型表达式 <L Expression> 逻辑型表达式 <y Expression> 货币型表达式 <e Expression> 上述几种表达式之一
3、名字(见P8) <file> 文件名 <field> 字段名 … 4、缩写说明(见P8) VFP命令和函数常用的缩写和术语如下: 缩写 含义 ADDITIVE 保留或保住的意思 alias 工作区别名 …
补充:系统容量和文件类型 一、系统容量(P13) 表文件的最大记录数 10亿 记录的字符最大数 255 表字段的最大字符数 255 二、VFP的文件类型(P15) 扩展名 文件类型 扩展名 文件类型 .CDX 复合索引文件 .DBC 数据库文件 .DBF 表文件 .DCT 数据库备注文件 .EXE 可执行程序文件 .FMT 格式文件 .FPT 表备注文件 .FRT 报表备注文件 .FRX 报表文件 .FXP 编译的程序文件
1.3 FoxPro的历史地位、VFP8.0,9.0版本和展望 1.3.1 FoxPro是与dBASE全兼容的FoxBASE+发展而来的关系数据库管理系统 • 数据库(Database,即DB)是存贮在一起的相关数据的集合,是存贮数据的“仓库”。其名词源于20世纪50年代,现在,数据库技术已成为计算机领域最重要的技术之一,它是软件学科中一个独立分支(即研究数据库的结构、存贮、设计和使用的一门软件学科)。 • 数据库技术就是作为数据处理中的一门技术发展起来的,今天它已广泛地应用到工业、农业、商业、国家机关、大专院校、科研单位、金融、财贸和国防军事、情报等各行各业的管理信息系统(MIS)、办公自动化系统(OA)、决策支持系统等领域中。 • Fox数据库是属于关系数据库,其中VFP是全国非计算机专业计算机等级二级考试用得最广的语言之一,也是计算机专业C/S结构前端用得最多的工具之一。最早将Fox数据库引入中国大陆之后,我们已先后主编出版了11本Fox教材和著作。
VFP、一般FoxPro、FoxBASE以及dBASE都属于叫作xBASE的数据库管理系统范畴VFP、一般FoxPro、FoxBASE以及dBASE都属于叫作xBASE的数据库管理系统范畴 • xBASE最初源于1972年开发的JPLDIS的主机DBMS。当PC微机和兼容机在80年代普及的时候,美国Ashton-Tate公司开发的dBASEⅡ很快出现,作为牵头的数据库管理程序。 • dBASE的交互式命令可使用户很方便地建立、编辑数据库和打印报表,还包括一个简单易学的运用语言,编程者使用它能为客户建立菜单驱动定制的应用程序。让他们能通过菜单选择和编辑数据,精确地打印其需要的报表。 • dBASE 的功能使它成了最普及的微机数据库管理系统 •高峰时期dBASE占微机用户80%-85%。
dBASE的弱点 •用户抱怨:仅显示一个圆点,几乎不给用户任何提示。 •编程人员的抱怨:不能建立数组等,没有包括一个“编译器”。
FoxBASE 于1984年由美国的Fox Software公司,推出。 •比dBASEⅢ快6.74倍,且全兼容,还有数组、伪编译等许多功能提高,深受用户欢迎。 •1987年笔者发表了中国大陆第一篇介绍狐狸软件的文章《FoxBASE+新颖关系数据库》,将其引入中国。 •FoxBASE+(1986年)的1.12版—2.00版(1987年7月)—2.10版(1988) 内存分配 带筛选索引 FoxView FoxGraph等工具 •FoxPro(一种比FoxBASE+更高级的关系数据库管理系统)1989年11月首次出现时,这个Fox Software公司的新产品便被许多数据库用户和编程者完全地接受了。
1.3.2 新的数据库工业标准与FoxPro的进展 一、FoxPro关系数据库管理系统有如下特点:
1、速度快。比dBASE Ⅲ快16倍,比FoxBASE+快2倍,其专利技术Rushmore优化检索信息比竞争者快100倍,且与dBASE和FoxBASE+全兼容。 2、其用户界面基于窗口和下拉菜单(象Macintosh一样),可用鼠标器和键盘操作。 3、菜单驱动时,在命令窗口中自动产生等同的一组命令。 4、有功能强大的内部编辑器,用它可方便地编程。 5、为编程者提供了菜单和屏幕产生器,能容易地建立带有单选 按钮 和复选框的弹出菜单和精致的窗口屏幕以及带鼠标的 其它高级界面,让人耳目一新。
6、有速度极快的多种索引文件(复合、结构复合、压缩索引文件)。6、有速度极快的多种索引文件(复合、结构复合、压缩索引文件)。 7、有低级I/O文件处理功能(类似于C语言中的文件处理功能),使 高级编程者编程能力更强。 8、应用程序建立器可使程序自动生成。 9、有强大的工具。如,Distribution Kit能产生完全独立的可执 行文件(.exe文件),以及Library Construction Kit可与C 语言、汇编语言接口,构造函数库,扩大FoxPro功能。 10、有数据库标准语言SQL(Structural Query Language)的嵌入以 及RQBE(RelationalQuery By Example)查询。 11、 有强大的帮助库和联机帮助信息等。 FoxPro轻松地显示,它已成为新的数据库工业标准。
二、FoxPro2.5,2.6的功能 1、1992年下半年推出FoxPro2.5,除了是32位,速度比2.0版 快3倍,有255个工作区和有General(通用)新字段等特点 外,主要是推出了四个平台的FoxPro2.5(for Dos;for Windows;for Unix;for Macintosh)。特别是FoxPro2.5 for Windows,专家评论:“它的出现标志了微型计算机历史 中的一个里程碑,因为你现在可将80年代的MS-DOS商 用语言xBASE写的程序稍作修改(或根本不作任何修改)运 行在90年代的操作环境Windows3.2等图形用户界面(GUI) 下。” 2、FoxPro2.5 for Windows特点如下: 保留性 独立性 内存管理性 内部交换性
有与Windows一样完全的图形用户界面(GUI)的特点 • 支持Windows各种标准字型(Fonts) • 增加了两个工具:Immigration kit, • Service/client Connectivite kit等 • 3.微软公司于1994年下半年推出FoxPro2.6,除了具有FoxPro2.5四个平台的所有功能外,它主要增加了Wizard向导(用鼠标器便可完成建立数据库表、生成屏幕,打印报表等全部工作),以及像dBASE IV那样的目录管理(Central)。
三、Visual FoxPro 3.0 1995年6月,微软公司推出Visual FoxPro3.0 for Windows: • 面向对象编程 • 有可视工具和控件 • 以非dBF格式库与服务器相联(客户/服务器结构),并有前端、后端数据库概念 使FoxPro首次升级为VFP。
四、Visual FoxPro 5.0版面向对象的数据库开发系统Visual FoxPro 5.0(1996年8月28日,微软公司推出)面向对象的数据库开发系统继承了3.0版的领导传统。具有ActiveX扩展、增加的性能、改进的连接特点和增加的开发环境等强大的功能提高: • 现在用ActiveX,开发者可以选择一个较宽的语言工具、应用程序和可重复使用的部件范围来更快和更容易地生成丰富的交互式应用程序 • 用户可以用诸如Offline View(游离视图)和多级客户/服务器功能,甚至工作在Internet(国际互联网)上的服务器那样较大的改进连接特点来开发应用程序。 • 用户也将享有增强的开发环境。 • Visual FoxPro有极大的灵活性,用它可从应用程序、客户/服务器数据库或本地数据库存贮集成数据,开发能运行在多个平台上的应用程序。
五、1998年8月26日微软公司推出了作为MS Visual Studio 98组成部份的Visual FoxPro 6.0 for Windows。 • OLE拖放 • 用VFP6.0可以创建由Active Document宿主程序(如Internet浏览器)所包容的Active Document • VFP6.0 Automation现在支持套件模型线程的改进 • VFP6.0新增和改进了应用程序开发工具 •组件管理库、改进了的应用程序框架 •代码范围分析器应用程序 •项目管理器挂接程序 •新增和改进了的向导(应用程序向导等) •改进了的应用程序框架
Access和Assign方法程序 • 对GIF和JPEG图形的支持 • 以及新的改进了的语言元素和对2000年日期的支持等 • 可直接调用VFP API库文件Foxtools.fll中有很多文件名处理函数 • 创建Web页,可在表单代码窗口中访问“表单菜单、即使在表单代码窗口中,也可以使用CTRL+E键盘快捷键运行表单等 • 支持HTML的帮助
六、Visual FoxPro 7.0 • 2002年微软公司推出了Visual Studio.NET7.0,Visual FoxPro 7.0版(测试版)是其中的成员 • 但Visual Studio.NET7.0的正式版推出后就不包VFP7.0了,使人不知何故。VFP7.0除了与.NET平台有密切关系外,还具有数据库容器事件(用户可自己编写代码、方法、函数或过程来响应数据库容器事件) • 智能检测;新增和增强的指令、函数及类;提供VFP OLE DB;服务器的增强等。
1.3.3 VFP8.0 ,9.0版本的新特点及展望 2003年2月1日美国微软公司推出Visual FoxPro 8.0版后,一段时间以来由于其7.0版在Visual Studio.NET7.0正版中末见到而引起的该公司今后是否还发展狐狸数据库的疑虑便在用户中释然了。2005年推出Visual FoxPro 9.0版. VFP8.0,9.0与FoxPro以前的版本全兼容,并且与Visual Studio.NET2003,.NET2005兼容。此外还有如下“亮点”。 • 全面的数据访问 •Cursor-Adapter(ADO) • 结构化错误处理 •代码中使用TRY···CATCH···FINALLY结构(用THROW分支处理例外)控制和“包”住错误处理,并且使用Exception对象管理。 • View设计器 •在Query View设计器和源代码输出之间使用的一种方法编辑建立SQL Select语句查询。
支持自动增量 • Windows XP题目支持 • 提供Windows XP题目到VFP应用程序,包括到表单和容器级控件。 • 高级控件 •可使用如下丰富的特点构建美妙的客户端桌面表单,例如面向页框tabs、锁住和自动扩大列的尺寸、高亮度标注网格行、改变背景颜色和在命令按钮上置图像等。 • 事件处理 •绑定原有的和安制的事件及方法到其它VFP对象。
XML数据导入和导 •在VFP数据Cursors和ADO.NET DataSetes之间使用支持XML DiffGrams来导入和导出层次化的XML。 • XML Web Services •发佈和消耗SOAP(其使用包含微软SOAP Toolkit3.0,基于与超过HTTP的.NET技术兼容的XML Web Services)。 • OLE DB Provider •可提供对来自诸如Visual Studio.NET和office XP其它客户端的VFP数据的访问。 • SQL Server2000桌面引擎(MSDE) •可建立桌面和共享与SQL Server2000兼容的解决方案,并且能不用修改代码直接移植它们到SQL Server2000。
开发的丰富功能 •使用Task Pane来管理开发任务并访问Visual FoxPro帮助、XML Web Servers和社区新闻·新的工具栏(Tool box)对诸如类、控件和程序等频繁使用的项目提供容易地访问。 笔者1987年首次在国内介绍FoxBASE+时,曾写文估计:“Fox将取代占微机数据库用户90%以上的dBASE”现在看来的确是如此了,Fox已风靡各地。可以预见,随着Fox数据库的不断发展,使用它的人将会越来越多,它将成为新世纪人们日常生活、工作中不可或缺的工具和帮手。
1.4 VFP的窗口、菜单及其它 启动: 开始菜单——程序——VFP程序组窗口中双击狐狸头像图标便启动Visual FoxPro 6.0
退出:直接从“文件”弹出菜单中选择“退出”,或选择右上角带 X 的按钮关闭,或在命窗口输入Quit命令退出。
标题栏 主菜单栏 主工具栏 改变尺寸按钮 下拉菜单 工作区域 命令窗口
1.5 用命令窗口(Command)工作 VFP有二种工作方式:程序和命令 命令窗口就是用命令语句来工作的方式。当输入一条命令后按enter,VFP就执行方该语句完成语句功能。 作业:第一章 习题 一、1.1——1.12做在本子上。(写清楚作业的编号) 二、思考1.13——1.23题。复习书内容。