首页 VFP教程

VFP教程

举报
开通vip

VFP教程计算机等级考试VFP教程 计算机等级考试VFP教程 第一章 数据库系统 1. 数据处理 数据: 是对事实、概念或指令的一种特殊表达形式,可以用人工的方式或自动化的装置进行通信、翻译转换或者进行加工处理。 它包括两类:一类是能参与数字运算的数值型数据;一类是不能参与数字运算的非数值型数据,如文字、图画、声音、活动图象等。 数据处理: 是对各种类型的数据进行收集、存储、分类、计算、加工、检索与传输的过程。 包括:收集原始数据、编码转换、数据输入、数据处理、数据输出。 2. 数据库系统 (1) 数据库(DataBase)...

VFP教程
计算机等级考试VFP教程 计算机等级考试VFP教程 第一章 数据库系统 1. 数据处理 数据: 是对事实、概念或指令的一种特殊表达形式,可以用人工的方式或自动化的装置进行通信、翻译转换或者进行加工处理。 它包括两类:一类是能参与数字运算的数值型数据;一类是不能参与数字运算的非数值型数据,如文字、图画、声音、活动图象等。 数据处理: 是对各种类型的数据进行收集、存储、分类、计算、加工、检索与传输的过程。 包括:收集原始数据、编码转换、数据输入、数据处理、数据输出。 2. 数据库系统 (1) 数据库(DataBase) 定义:是以一定的组织形式存放在计算机存储介质上的相互关联的数据的集合。 特点: 具有最小的冗余度、具有数据独立性、实现数据共享、安全可靠、保密性能好 (2)数据库管理系统(DataBase Management System) 定义: 是操纵和管理数据库的系统软件。Visual FoxPro 属于一种关系型数据库管理系统。 数据语言: 数据定义语言(DDL): 用来建立所需的数据库。 数据操作语言(DML): 用来对数据库进行查询和维护操作。 关系型数据库使用的 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 语言是结构化查询语言(Structured Query Language, SQL)。 (3)数据库系统(DataBase System) 定义: 是以数据库应用为基础的计算机系统。 组成: 数据库 硬件(计算机硬件设备) 软件(数据库管理系统 、操作系统) 用户(应用程序 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 员、终端用户、数据库管理员 ) 分类:层次型数据库、网状型数据库、关系型数据库 分代:第一代 非关系型数据库系统,60年代末问世,包括层次型和网状型。 第二代 关系型数据库系统(RDBS),70年代中期问世。 第三代 对象-关系数据库系统(ORDBS 、OOBDS),80年代中期至今。 上述三个概念之间的联系:在数据库系统中通过数据库管理系统来建立和使用数据库。 3.关系模型 三个领域:   现实世界→事物(对象、性质)   观念世界→实体(对象、属性)   数据世界→数据( 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 、字段) 实体模型:即反映事物联系的实体。 数据模型:即描述实体模型的数据。 数据模型的分类: 层次模型(采用树型结构) 网络模型(采用无向图型结构) 关系模型(采用二维表结构) 关系模型的性质: 二维表的记录数随数据的增加而改变,但其字段数是相对固定的;二维表中的每一列均有唯一的字段名;二维表中不允许出现完全相同的两行二维表中行的顺序、列的顺序均可以任意交换。 二维表的主关键字: 超关键字: 能唯一确定记录的一列或几列的组合   候选关键字:最简练的超关键字   主关键字:  候选关键字中的一个   外部关键字:当A表的主关键字被包含到B表中时,则称A表的主关键字为B表的外部关键字。 4. 微机关系型数据库系统的发展 关系型数据库: 即根据表、记录和字段之间的关系进行组织和访问的一种数据库。 名 称 运行环境 公司名称 发布时间 dBASE, dBASEⅡ, dBASEⅢ,dBASEⅢ PLUS, dBASE DOS Ashton-Tate   FoxBASE 1.0 DOS Fox软件公司 1987.2 FoxBASE + (2.00/2.10) DOS Fox软件公司 87.7/88.7 FoxPro 1.0 DOS Fox软件公司 1989 FoxPro 2.0 DOS Fox软件公司 1991 FoxPro 2.5 DOS 、 WINDOWS 3.x 微软公司 1993.1 FoxPro 2.6 DOS 、 Windows 3.x 微软公司 1994 Visual FoxPro 3.0 Windows 3.X 微软公司 1996.1 Visual FoxPro 5.0 Windows 95 微软公司 1997.2 Visual FoxPro 6.0 Windows 98 微软公司 1998.1 1.2 Visual FoxPro 6.0概述 1. VFP6.0的特点 完善了关系型数据库的概念,采用了Rushmore技术,引入了SQL命令;支持多种数据交换格式;采用了可视化的面向对象的程序设计方式;提供了功能完善的集成环境和丰富的开发工具。 2. VFP6.0的用户界面 界面基本组成:标题栏、主菜单栏、工具栏、主窗口、命令窗口、状态栏 系统工具一览表 各种菜单 各种工具栏 各种窗口 各种设计器 各种生成器 各种向导 文件菜单 常用工具栏 命令窗口 数据库设计器 文本框生成器 表向导 编辑菜单 表单控制工具栏 浏览窗口 表设计器 组合框生成器 交叉表向导 显示菜单 布局工具栏 代码窗口 表单设计器 命令组生成器 查询向导 格式菜单 调色板工具栏 调试窗口 菜单设计器 编辑框生成器 本地视图向导 工具菜单 打印预览工具栏 编辑窗口 报表设计器 表达式生成器 表单向导 程序菜单 报表控制工具栏 查看窗口 标签设计器 表单生成器 一对多表单向导 窗口菜单 查询设计器工具栏 跟踪窗口 类设计器 表格生成器 报表向导 帮助菜单 表单设计器工具栏 属性窗口 连接设计器 列表框生成器 一对多报表向导 菜单菜单 报表设计器工具栏 通用字段窗口 查询和视图设计器 参照完整性生成器 标签向导 数据环境菜单 数据库设计器工具栏 远程视图向导 表单菜单 项目管理器窗口 数据环境设计器 自动格式生成器 邮件合并向导 项目菜单 导入向导 查询菜单       选项组生成器 图形向导 报表菜单   数据透视表向导 表菜单 分组/总计报表向导 数据库菜单 类菜单 3. VFP 6.0的工作方式 (1) 菜单操作方式 根据所需的操作从菜单中选择相应的命令(与WORD类似)。每执行一次菜单命令,命令窗口中一般都会显示出与菜单对应的命令内容。 利用工具菜单中的向导可以很方便地完成常规任务。 (2) 命令交互方式 根据所要进行的各项操作,采用人机对话方式在命令窗口中按格式要求逐条输入所需命令,按回车后,机器逐条执行。 (3) 程序执行方式 先在程序编辑窗口中编完程序,再从程序菜单中选择执行,或从命令窗口中输入DO 命令,让机器执行。 4. VFP 6.0常用文件类型 VFP 6.0常用的文件扩展名及其关联的文件类型 扩展名 文件类型 扩展名 文件类型 .app 生成的应用程序 .frx 报表 .exe 可执行程序 .frt 报表备注 .pjx 项目 .lbx 标签 .pjt 项目备注 .lbt 标签备注 .dbc 数据库 .prg 程序 .dct 数据库备注 .fxp 编译后的程序 .dcx 数据库索引 .err 编译错误 .dbf 表 .mnx 菜单 .fpt 表备注 .mnt 菜单备注 .cdx 复合索引 .mpr 生成的菜单程序 .idx 单索引 .mpx 编译后的菜单程序 .qpr 生成的查询程序 .vcx 可视类库 .qpx 编译后的查询程序 .vct 可视类库备注 .scx 表单 .txt 文本 .sct 表单备注 .bak 备份文件 5. 创建文件 新建各种类型的文件时,可以利用系统提供的相应工具,以提高工作效率。新建文件时可用的设计器和向导。 1.3 项目管理器 1. 项目管理器简介 项目: 是一种文件,用于跟踪创建应用系统所需要的所有程序、表单、菜单、库、报表、标签、查询和一些其他类型的文件。 项目管理器: 是开发VFP应用系统的一个工具,它生成一个项目文件,项目文件的扩展名为 .PJX,项目备注的扩展名为:.PJT。 项目管理器窗口的组成: 由6大类数据项(全部、数据、文档、类、代码、其他)和10个命令按钮(新建、添加、修改、浏览、关闭、打开、预览、运行、移去、连编)组成。 注:粗斜体表示的命令按纽根据用户选择的不同对象相应地出现。 项目菜单的组成:13个子菜单(其中一部分与项目管理器中的命令按钮功能相同)。 项目管理器的功能:组织和管理所有与应用系统有关的各种类型的文件。 2. 创建项目文件 用菜单方式: 打开文件菜单 → 新建 → 项目→ 新文件 → 给出合适的项目文件名及保存位置 → 进入项目管理器 → 开发应用系统 → 完成后关闭窗口退出。 用命令方式: 语法:CREATE PROJECT <项目文件名> 功能:打开项目管理器窗口进行应用系统的开发。 3. 修改项目文件 用菜单方式: 打开文件菜单 → 打开 → 找到所需的项目文件并确定之 → 进入项目管理器→ 修改应用系统 → 完成后关闭窗口退出。 用命令方式: 语法:MODIFY PROJECT <项目文件名> 功能:打开项目管理器窗口进行应用系统的修改。 4. 项目管理器的使用 可以利用项目管理器来创建、打开、浏览、修改所有VFP文件并运行其中的表单、报表、标签、菜单、程序等。特别是可以利用它来连编项目(追踪这些文件的变化情况,包括它们之间的相关性、引用和连接等,确保引用的完整,并加入自上次连编之后更新了的一些组件)、应用程序(扩展名为.APP,在VFP环境下执行)和可执行文件(扩展名为.EXE,能脱离VFP环境执行)。 1.4 VFP 6.0 的一些规则 1. VFP6.0 的命名规则: · 只能使用字母、下划线和数字。 · 使用字母或下划线作为名称的开头。 · 名称可以是 1 至 128 个字符,但自由表的字段名和索引标识最多只能有 10 个字符。 · 避免使用 Visual FoxPro 的保留字。 · 文件的命名遵循操作系统的约定。 2. 命令和子句的书写规则 (1) 以命令动词开始; (2) 各部分之间要用空格隔开; (3) 命令、子句、函数名都可简写为前4个字符,大、小写等效; (4) 一行只能写一条命令,总长度不超过8192个字符,超过屏幕宽度时用续行符“;”; (5) 变量名、字段名和文件名应避免与命令动词、关键字或函数名同名,以免运行时发生混乱。 (6) 命令格式中的符号约定: 命令中的[ ] 、| 、…、< > 符号都不是命令本身的语法成分,使用时不能照原样输入, 其中:[ ] 表示可选项,根据具体情况决定是否选用 | 表示两边的部分只能选用其中的一个 … 表示可以有任意个类似参数,各参数间用逗号隔开 < > 表示其中内容要以实际名称或参数代入 3. 命令工作方式中的常见错误 (1) 命令动词写错 (2) 格式不符合要求 · 标点符号不对(一定要用英文标点符号) · 缺少必需的空格或添加了不该有的空格 · 数据类型不一致,要注意字符型、数值型、日期型、逻辑型数据的书写格式 (3) 打不开所需文件:没有正确输入盘符和路径或文件名输错 第二章 VFP语言基础 2.1 程序设计概述 1. 程序设计方法简介 设计方法 主要概念 设计过程 程序执行方式 结构化程序设计 功能模块(即过程、自定义函数) 编制各个功能模块,再用主程序将它们串起来 将应用程序分解成若干功能模块,通过各模块的相互调用来完成整个执行过程,是过程驱动的。 面向对象程序设计 类、对象、属性、事件、方法 设计类、子类、对象(设计外观、设置属性、为事件编写方法程序) 将应用程序分解成具有特定属性的对象,通过调用各对象的不同方法来完成相关事件,是事件驱动的。 2.数据类型 VFP 包含下列数据类型: 通用的数据类型 字符型 Character 货币型 Currency 日期型 Date 日期时间型 DateTime 逻辑型 Logical 数值型 Numeric 仅用于字段的数据类型 双精度型 Double 浮点型 Float 整型 Integer 通用型 General 备注型 Memo   3. 数据容器 VFP中用来存储数据的容器有:常量、变量、数组、记录和对象。 (1) 常量(constants): 一个在操作过程中保持不变的数值或字符串。 常用的常量类型 常量类型 数值型常量 字符型常量 逻辑型常量 日期型常量 表示方式 -25.36 "abc","123","中国" .T. .F. {^2005/07/10} (2)变量(variables): 是内存中的一个存储单元的位置,其中的内容可以变化,但标识该存储位置的名称(即变量名)不变。 变量的命名习惯: 类型变量代号 如:cStud 、nCj 、dCsrq —— 分别代表一个字符型、数值型、日期型的变量名 变量的赋值方式: 1) 用 STORE 命令 如:STORE "王兰" TO cStud 2) 用赋值操作符 = 如:cStud = "王兰" 变量的作用域: 即变量起使用的有效范围。 变量作用域 定义作用域的关键字 特点 局部变量 local variable(本地变量) LOCAL 只能在一个函数或过程中被访问,其他过程或函数不能访问此变量的数据。当其所属程序停止运行时,局部变量将被释放。 私有变量 private variable PRIVATE 私有变量在 VFP 中是默认的,不需要特殊的关键字定义。但是,如果在更高一级例程(routine)中已经有同名变量,可以用PRIVATE 关键字予以声明,以限定其范围。当定义此变量的例程结束时,此变量也被相应释放。可使用私有变量在被调用的函数中共享数据。 公共变量 public variable PUBLIC 可用于所有过程和函数,而不限于定义该变量的过程和函数。可使用全局变量在多个过程或函数之间共享数据,在命令窗口中创建的任何变量自动具有全局属性。 变量的访问: 当变量和字段同名时,字段有优先被访问权。要在变量名前加 m. 或 m -> 以示区别,如 m.cStud (3)数组(array): 是存储在一个变量中由单个变量名引用的有序数据集合。在 VFP中,一个数组中的数据不必是同一种数据类型。常用的有一维数组,二维数组。 数组元素的标识:通过一个数值下标来引用,如 AA[2],AA[2,3] 数组类型的声明: 私有数组 ——用DECLARE 或 DIMENSION定义 全局数组 ——用PUBLIC命定义 局部数组 ——用LOCAL定义 数组元素的赋值: 用赋值语句: 如 AA=45 用SCATTER从当前记录中取特定字段的值赋给数组: 如: scatter fields xh, xm, xb to aa (数组长度、类型自动与所给字段相同) 用 COPY TO ARRAY从当前记录中取所有字段的值赋给数组: 如: copy to array aa (数组长度、类型自动与表中全部字段相同) 把数组中的数据传给当前表中的当前记录: gather from 数组名 [fields 字段名表] 用数组向当前表添加记录: append from array 数组名 [for 条件] [[fields 字段名表] (用二维数组可以同时添加多条记录) 数组处理的常用函数: 排序SORT(),搜索ASCAN(),删除ADEL(),插入AINS() (4) 记录: 表中的一行,由字段组成。 (5) 对象: 对象是类的一个实例,类是对拥有数据和一定行为特征的对象集合的描述。VFP对象可以是表单、表单集、控件。 2.2 VFP 6.0的语言成分 1. 命令 即:由用户发出的、指示VFP进行某种操作的指令。 如 USE aaa & 打开 一个名为 aaa.dbf的数据表 2. 函数 即:一个预先编制好的模块,可由VFP程序在任何地方调用。 函数的使用方法:名称、功能、参数、返回值 几个常用函数 名称 命令格式 示例 字符串截取函数 SUBSTR( expC,expN1[,expN2 ]) ? SUBSTR(“ABCDEFG”,2,4) 结果是: BCDE LEFT( expC,expN ) ? LEFT(“ABCDEFG”,2) 结果是: AB RIGHT( expC,expN ) ? RIGHTT(“ABCDEFG”,4) 结果是: DEFG 字符串查找函数 AT ( expC1 , expC2 [ expN ]) ? AT(“B”, “ABCDE”) 结果是: 2 ? AT(“A”, “ABCDEASD” ) 结果是: 1 ? AT(“A”,“ABCDEASD”,2 ) 结果是: 6 大小写字母转换函数 LOWER( expC ) ? LOWER(“DFG0Ha”) 结果是: dfgha UPPER( expC ) ? UPPER(“asdf”) 结果是: ASDF 数值函数 MAX(exp1,exp1[,exp3,…]) ? MAX(15,23,4,56) 结果是: 56 MIN(exp1,exp1[,exp3,…]) ? MIN(15,23,4,56) 结果是: 4 ABS( expN ) ? ABS(-15.83) 结果是: 15.83 INT( expN ) ? INT(25.62) 结果是: 25 压缩空格函数 ALLTRIM( expC ) ? ALLTRIM(" AD B G ") 结果是: AD B G 类型转换函数 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/15 10: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) 宏替换:用宏替换符号 & 表示,它与名称表达式具有相似的作用。 例: 已知 A="1", B="2", C12="GOOD" 则 C&A&B="GOOD" 4. 操作符 数值操作符 ( ) ^ 或 ** * / %(取余数) + - 关系操作符 < <= > >= <>   或 !=   或 # = = 逻辑操作符 ()表达式分组 NO或!(非) AND(和) OR (或) 日期和时间操作符 + - 注意: 日期型: 天数 时间型: 秒数 字符操作符: + - $ 两个特殊的操作符 圆点操作符(.):用于分隔对象的名称以及分隔对象中的属性、事件、方法。 范围转变操作符(::):提供了从一个子类中调用一个父类的方法。 2.3 程序设计基础 1. 基本概念 程   序:为解决某一问题而设计的一系列指令。 主程序:通常被用户直接执行的程序。 子程序:在程序中被调用的程序。 源程序: 由人用源语言编写的计算机程序,必须翻译成机器语言后才能被执行。 目标程序: 是源程序经过编译后所产生的机器语言程序。 可执行程序: 源程序被编译后产生的可被机器直接执行的程序,具有 .EXE 扩展名。在VFP中是指由项目管理器连编生成的、可脱离VFP环境运行的程序。 应用程序: 指为完成专门工作而设计的一组相互联系的例行程序和子程序。在VFP中是指一组 Visual FoxPro 程序、表单、菜单和其他文件经项目管理器连编后形成的单个程序,不能脱离VFP环境运行,扩展名为.APP。 例行程序: 按某种顺序排列的、使计算机能执行某种任务的指令集合,可以是一种专用的程序或作为程序的一部分。它可由若干个子程序组成。 2. 程序控制 (1) 顺序语句 即按程序中的语句顺序依次执行。 (2) 分支语句 条件语句: 情况语句: IF 条件 命令组1 [ ELSE 命令组2 ] ENDIF DO CASE CASE 情况1 命令组1 CASE 情况2 命令组2 … [OTHERWISE 其它命令组 ] ENDCASE 3. 循环语句 FOR 循环语句(预知循环次数) FOR 变量 = 初值 TO 终值 [STEP 步长 ] 命令组 ENDFOR | NEXT DO WHILE 循环语句(未知循环次数) DO WHILE 条件 命令组 ENDDO SCAN 循环语句(针对全部记录) SCAN [ 范围 ] [FOR | WHILE 条件 ] 命令组 ENDSCAN 循环结构中的LOOP命令和EXIT命令: LOOP是短路语句,表示从此开始下一次循环; EXIT是退出语句,表示跳出循环。 4. 子程序 子程序的的形式可以是一个程序文件,也可以是一个过程或自定义函数。   子程序 自定义函数 过程 特点 总是被其他程序调用而不单独执行,可以调用其他子程序,不一定要返回一个值。 能以一个独立的文件储存,也可包含在调用程序中,必须返回一个值。 是一个程序段,是程序的组成部分,一般放在程序的最后。 定义方法 与程序相同,只是在子程序的结尾加需一条返回命令: RETURN [ 表达式 |TO MASTER |TO 程序文件名] FUNCTION 函数名 或:MODIFY COMMAND 函数名 PARAMETERS 数表 命令组 RETURN 表达式 注:用此命令定义的函数以独立的文件形式储存。 PROCEDURE 过程名 PARAMETRS 参数表 命令组 RETURN 调用方法 DO 子程序名[WITH 参数表 ] = 函数名 ( 参数表 ) DO 过程名 WITH 参数表   3. 创建应用程序 方法一: 在命令窗口中输入: MODIFY COMMAND 程序名 方法二: 单击文件菜单 → 新建 → 程序 → 新文件 → 在编辑窗口中编辑程序 → 完成后关闭 → 给出合适的程序名及保存位置 。   程序的注释: 方法1: * | NOTE <注释内容> 可出现在程序中的任何地方 方法2: && <注释内容> 一般用于命令的尾部 给程序加注释的目的是为了提高程序的可读性。 面向过程的程序设计三步曲: 输入 → 处理 → 输出 4. 修改应用程序 方法一: 在命令窗口中输入: MODIFY COMMAND 程序名 | ? 注: ? 表示不知道程序名,要从打开对话框中选定。 方法 二: 单击文件菜单 → 打开 → 选择所需程序并打开 → 在编辑窗口中对程序进行修改 → 完成后关闭退出。 5. 执行应用程序 方法一: 在命令窗口中输入: DO 程序名 | ? 方法二:从程序菜单中选择执行→从打开对话框中选择所需程序并执行之。 6. 程序设计的基本步骤 (1)对问题进行说明 (2)分解问题 (3)编制各模块 (4)测试并完善各模块 (5)组装全部模块 (6)整体测试 第三章 表的创建和使用 1. 表的概念 表(数据表): 是指存放在磁盘文件中的一张二维表。(相当FoxPro 2.x 版本中的数据库) 自由表:不属于任何数据库的表。 数据库表:包含在一个数据库中的表。 表文件名: 表名可以由字母、数字或下划线组成,系统自动给出的扩展名为 .DBF。 备注文件名: 当表中有备注型或通用型字段时,系统自动生成与所属数据表的表名相同、扩展名为:.FPT的文件名。 表结构:存储表记录的公共结构。(就是指一张表的表头结构,即字段的属性)。 记录:表中的一行。它是多个字段的集合,同一张表的每个记录都有相同的字段。 字段:表中的一列。它规定了数据的特征。 关系型数据表的特点: (1)每一个字段不可再分解,也不能有名字相同的字段; (2)每一列中的数据都有相同的数据类型; (3)表中没有内容完全相同的行(记录)。 2. 字段的基本属性 字段的属性: 包括:字段名、数据类型、字段宽度、小数位数、空值支持 字段名: 即每个字段的名字,必须以字母开头,可由字母、数字、下划线组合而成,字母大、小写无区别,但其中不许有空格或其它字符。自由表的字段名最多由10个字符组成,数据库表的字段名支持长名,最多可达128个字符。如果从数据库中移去一个表,那么此表的长字段名将被截短成 10 个字符。 VFP允许长字段名和长表名,但使用长名称对于跨平台的操作可能遇到难以预料的结果。 数据类型:指该字段的数据特征。 字段宽度:指该字段所能容纳数据的的最大字节数。 小数位数:指数值型数据将保留几位小数。此时的字段宽度 = 整数位数+1+小数位数。 NULL 值(空值): 无明确的值。NULL 值不等同于零或空格。一个 NULL 值不能认为比某个值(包括另一个 NULL 值)大或小,相等或不同。 VFP 6.0表中字段的数据类型 字段类型 代号 说明 字段宽度 使用示例 字符型 C 字母、汉字和数字型文本 每个字符为1个字节,最多可有 254 个字符 学生的学号或姓名, "8199101" 或 '李立' 货币型 Y 货币单位 8 个字节 工资, $1246.89 日期型 D 包含有年、月和日的数据 8 个字节 出生日期, {^1980/07/08} 日期时间型 T 包含有年、月、日、时、分、秒的数据 8 个字节 上班时间, {^2005/02/20 9:15:15 AM} 逻辑型 L “真”或“假”的布尔值 1 个字节 课程是否为必修课, .T. 或 .F. 数值型 N 整数或小数 在内存中占 8 个字节;在表中占1 至20个字节 考试成绩, 83.5 双精度型 B 双精度浮点数 8 个字节 实验要求的高精度数据 浮点型 F 与数值型一样     整型 I 不带小数点的数值 4 个字节 学生的数量 通用型 G OLE 对象 在表中占 4 个字节 图片或声音 备注型 M 不定长度的一段文字 在表中占 4 个字节 学生简历 字符型(二进制) C 任意不经过代码页修改而维护的字符数据 每个字符用1个字节,最多可有 254 个字符   备注型(二进制) M 任意不经过代码页修改而维护的备注数据 在表中占 4 个字节   3. 表的基本操作 表的创建:设计表名和表结构、输入记录、建立索引 数据维护:增加记录、修改记录、删除记录 创建表的主要步骤: 设计表结构 → 输入记录 → 建立索引 → 数据维护 4.关于表操作的几个基本命令 命令格式 功能 CREATE 表文件名 创建一个新的自由表的结构 USE 表文件名 打开指定的表文件 USE 关闭当前表文件 LIST ALL 显示当前表的全部记录内容(类似于DOS 命令中的dir) DISPLAY ALL 分屏式地显示当前表的全部记录内容(类似于DOS中的dir/p) DISPLAY STRUCTURE 显示当前表的结构(分屏显示) LIST STRUCTURE 显示当前表的结构(不分屏显示) MODIFY STRUCTURE 调出表设计器,修改当前表的结构。 CLEAR 清除主窗口中的所有内容 注意: (1)必须先打开所需的数据表才可进行以上操作; (2)当带有命令子句时,只对指定的记录进行操作; (3)LIST 命令的默认范围是所有记录,DISPLAY 命令的默认范围是当前记录。    3.2 表结构的创建和修改 1. 表结构的创建 创建表结构其实就是设计字段的基本属性。可以使用表设计器、表向导或SQL命令来创建表结构。 (1)使用表设计器创建表 步骤: 从文件菜单中单击新建 → 在新建对话框中选择表并单击新文件 → 在创建对话框中给出文件名并确定所需的保存位置 → 在表设计器对话框中逐个输入所需字段(用↓或鼠标换行),全部字段输入完成后单击确定。 (2)使用表向导创建表 步骤: 从文件菜单中单击新建 → 在新建对话框中选择表并单击向导→在表向导中做第1步:选取字段,完成后单击下一步 → 在表向导中做第1a步:选择数据库,完成后单击下一步 → 在表向导中做第2步:修改字段设置,完成后单击下一步 → 在表向导中做第3步:为表建索引,完成后单击下一步 → 在表向导中做第4步:完成,选择表的保存方法,完成后单击完成 → 在另存为对话框中给出文件名并确定所需的保存位置。 注意: 先选择一个与待建数据表类似的样表,再从中挑选出所需的部分字段,然后在下一步根据实际需要修改或直接采用原字段的宽度。 (3) 使用 CREATE TABLE - SQL命令 该命令的一般格式为: CREATE TABLE |dbf <表文件名>(字段名1 字段类型[(字段宽度[,小数位数])][,字段名2 字段类型[(字段宽度[,小数位数])]]……) 例:CREATE TABLE xscj(xh c(8),xm c(6),xb c(2),;cj n(5,1),ksrq d) 2. 表结构的修改 (1)用表设计器修改 用菜单调出表设计器:  打开所需的表文件 → 单击显示菜单中的表设计器 → 在表设计器对话框中对字段进行修改 → 修改完毕单击确定并在消息框中选择是。 用命令调出表设计器: USE <表文件名> MODIFY STRUCTURE (2) 使用 ALTER TABLE - SQL命令 功能 命令格式示例 添加字段 ALTER TABLE xscj ADD COLUMN kcmc C(14) 重命名字段 ALTER TABLE xscj RENAME COLUMN kcmc TO kc 删除字段 ALTER TABLE xscj DROP COLUMN kc 3.3 表记录的处理 1. 记录的输入 (1) 立即输入方式: 设计好表的结构后,系统会提示是否直接进入数据输入状态。若选是,则进入编辑窗口,输完后单击“X”按钮退出,系统自动存盘。需输入备注型或通用型字段的数据时,双击“memo” 或“gen”,在新打开的编辑窗口中输入所需内容,输完后单击“X”按钮系统自动存盘,退回到原窗口 ,此时字段中的“memo” 或“gen”变成“Memo” 或“Gen”。 (2) 追加方式: 若设计好表的结构后并没有及时输入数据,则可以用追加方式: 从文件菜单中(或从命令窗口中输入:USE 表文件名) 打开所需表文件 → 从显示菜单中选择浏览 → 再从显示菜单中选择追加方式 → 在浏览窗口中输入所需记录。 不同追加方式适用的场合 追加记录的方式 适用的场合 显示菜单中的追加方式 在现有数据表的尾部添加一个或多个新记录 表菜单中的追加新记录 在现有数据表的尾部添加一个新记录 表菜单中的追加记录… 从其它数据表中将符合要求(字段名和字段类型相同)的记录添加在当前数据表的尾部 APPEND [BLANK] 在当前表的末尾自动添加一个或多个新记录。相当于显示菜单中的追加方式。有BLANK时添加一个空记录,相当于表菜单中的追加新记录。 APPEND FROM 表文件名 [FIELDS 字段名1,字段名2 …][FOR 条件 ] 从其它数据表中将符合要求(字段名和字段类型相同)的记录添加在当前数据表的尾部。相当于表菜单中的追加记录…。 APPEND FROM 文本文件名 SDF 将符合要求的文本文件全部追加在当前数据表的尾部。 注意:文本内容要与表中的字段结构相适应。 文件菜单中的导入 将其它类型的文件转换成一个完整的VFP数据表。 (3) 使用INSERT-SQL命令 该命令的一般格式为: INSERT INTO <表名>[(字段名1[,字段名2 …])] VALUES (表达式1[,表达式2 …]) 例:INSERT INTO xscj(xh,xm,cj) VALUES ("81991001", "张良", 85.5) 2. 记录的浏览 (1) 通过浏览窗口 (2) 通过BROWSE 命令 BROWSE命令用来打开表的浏览窗口,可通过不同的子句来实现对特定记录的浏览。 VFP命令中的常用子句 1) 范围子句 子句格式 功能 ALL 表示对表文件的全部记录进行操作 NEXT n 表示对从当前记录开始的共n个记录进行操作, n为正整数 RECORD n 指明操作对象是表文件的第n号记录 REST 对从当前记录起到文件结尾的全部记录进行操作 2) FOR子句 用于指明进行操作的条件。 格式: FOR <条件> 指明只对指定范围中那些符合给定条件的进行当前操作。 例如: list NEXT 6 FOR cj < 85 3) WHILE 子句 也用于指明进行操作的条件。 格式: WHILE <条件> 例如: list NEXT 6 WHILE cj < 85 4) FIELDS 子句 用于指明当前的操作涉及到表文件的哪些字段。 格式:BROWSE [ FIELDS 字段名1,字段名2……] 例如:BROWSE FIELDS xh,xm,cj 3. 记录的定位 (1) 系统对记录的三个控制标志 记录开始标志:位于第一个记录之前。其值用函数BOF()进行测试。 记录指针标志:指向当前记录。其值用函数RECNO()进行测试。 记录结束标志:位于最后一个记录之后。其值用函数EOF()进行测试。 记录指针可以理解为保存当前记录号的变量,它的初始值总是1,不可能为0或负数,最大值是表中记录总数+1。 刚打开表时记录指针的情况 表中记录情况 BOF()的值 RECNO()的值 EOF()的值 无记录 .T. 1 .T. 有记录 .F. 1 .F. (2)记录的定位方式 绝对定位:是指把指针移到指定的位置。 相对定位: 是指把指针从当前位置开始,相对于当前记录向前或向后移动若干个记录位置。 条件定位: 是指按一定的条件在整张表或表的某个指定范围中查找符合该条件的记录。 通过菜单进行定位 从表菜单中选择转到记录:记录号——实现绝对定位 定位… ——实现条件定位 通过命令进行定位 记录的定位 命令格式 功能 备注 绝对定位 GO TOP 将记录指针定位到表文件之首 或 GOTO TOP GO BOTTOM 将记录指针定位到表文件之尾 或GOTO BOTTOM GO 将记录指针定位到指定的n号记录   相对定位 SKIP 将记录指针从当前记录向上或向下移动n个 n为正值则向下移动 n为负值则向上移动 无n向下移动 1个 条件定位 LOCATE FOR <条件> [ 范围 ] 按顺序搜索表, 直到找到满足指定条件的第一个记录 默认范围是所有记录   4. 记录的修改和删除 一张表用非只读方式打开后,即可通过菜单在浏览窗口(或编辑窗口)中或从命令窗口中用命令直接对其记录进行编辑、修改和删除。 (1) 菜单方式 修改记录: 从表菜单中选择替换字段… → 在替换字段对话框中选择待替换的字段并构造出替换表达式及替换条件 → 替换。 删除记录: 从表菜单中选择删除记录 → 在删除对话框中选择删除范围和删除条件 → 单击删除按钮 → 从表菜单中选择彻底删除 → 在消息框中单击是。 删除记录包括两步: 标记要删除的记录 和 彻底删除带删除标记的记录 恢复带删除标记的记录: 从表菜单中选择恢复记录 → 在恢复记录对话框中选择作用范围和条件 → 单击恢复记录按钮。 (2) SQL命令方式 (表事先可以不打开,适用于编程工作方式) 修改记录: 用 UPDATE-SQL 命令。 命令格式: UPDATE <表名> SET 字段1 = 表达式1 [,字段2 = 表达式2 …]; WHERE 条件表达式 例: UPDATE xscj SET cj = cj*1.05 WHERE cj>80 删除记录: 用 DELETE-SQL 命令。 命令格式: DELETE FROM <表名> [WHERE 条件表达式] 例: DELETE FROM xscj WHERE cj<60 (3) 在命令窗口中用VFP命令: 命令格式 功能 备注 插入 INSERT [BLANK][BEFORE] 在当前表的指定位置上插入一个空记录或若干新记录 BLANK :在当前记录后插入一个空记录 BEFORE :在当前记录之前插入若干新记录 修改 CHANGE [FIELDS 字段名1,…][FOR 条件] [LEDIT] [REDIT] 在编辑窗口显示要修改的字段 LEDIT:调出编辑窗口 REDIT:调出浏览窗口 替换 REPLACE 字段名1 WITH 表达式1 [ADDITIVE][, 字段名2 WITH 表达式2[ADDITIVE] …] [范围] [FOR 条件] 把字段值用指定的表达式进行替换。如: 工资单中给某些人长工资 默认范围是当前记录 ADDITIVE:把备注字段的替换内容添加在原备注内容的后面 删除 DELETE [ 范围 ][FOR 条件] 对当前表中指定范围内满足条件的记录加上删除标记 * PACK [MEMO][DBF] 将所有带删除标记的记录从表中抹去(不能再恢复) DBF:不影响备注文件 MEMO:从备注文件中删除未使用空间 ZAP 删除当前表中所有记录,只留下表的结构 相当于 DELETE ALL + PACK 恢复 RECALL [ 范围] [FOR 条件] 取消当前表中指定记录上的删除标记 默认范围是当前记录  5. 筛选记录和字段 (1) 用菜单方式 从表菜单中选择属性 → 在工作区属性对话框中单击数据过滤器框后的按钮 → 在表达式生成器对话框中构造所需的条件表达式并确定 → 单击字段筛选…按钮 →在字段筛选器中选择所需字段并确定 → 单击选项按钮:字段筛选指定的字段 → 确定。 (2)用命令方式 命令格式: SET FILTER TO 条件表达式 例: SET FILTER TO xb ='男' 注意:SQL命令对记录的访问不受此筛选命令的限制。  3.4 表的使用 1. 工作区 工作区: 指用来标识一张打开的表的区域。一个工作区在某一时刻只能打开一张表,但可以同时在多个工作区打开多张表,一张可以在多个工作区中多次被打开。每个工作区都有一个编号。 表的别名: 在工作区中打开表时为该表所定义的名称。可以自定义别名,否则系统默认就以表名作为别名。若一张表在多个工作区中被打开,系统默认在表名后依次加_a 、_b…。 自定义别名的格式: USE <表名> ALIAS <别名> 当前工作区: 正在使用的工作区。可以通过“数据工作期窗口”或用 SELECT命令把任何一个工作区设置为当前工作区。 SELECT 命令格式: SELECT <工作区号>|<别名> 要操作非当前工作区中的表,可以把其它工作区选为当前工作区,或在命令中强行指定工作区。 命令格式: IN <工作区号>|<别名> ALIAS([工作区号])函数: 测试指定工作区中的表的别名,无参数时指当前工作区表的别名。 SELECT([别名])函数: 测试指定别名的表所在的工作区号,无参数时指当前工作区的区号。 2. 表的打开和关闭 打开表的途径 关闭表的途径 文件菜单中的打开 工具栏上的打开 数据工作期窗口中关闭 USE 数据工作期窗口中打开 USE <表名> USE IN <别名>|<工作区号> CLOSE ALL USE <表名> IN <工作区号> USE <表名>AGAIN CLOSE DATABASE CLOSE TABLE USE <表名> ALIAS <别名> 退出VFP系统,则关闭所有的表 3. 表的独占与共享使用 独占使用: 一张表只能被一个用户打开。VFP6.0在默认状态以独占方式打开。 共享使用: 一张表可以被多个用户同时打开。 系统的默认打开方式可以通过工具菜单中的选项…来设置,或 用命令: SET EXCLUSIVE OFF && 默认打开方式为共享 SET EXCLUSIVE ON && 默认打开方式为独占 或强行打开:USE cj SHARED && 以共享方式打开cj表 USE cj EXCLUSIVE && 以独占方式打开cj表 4. 利用缓冲访问表中的数据 数据缓冲: 先将对表记录的修改存放在缓冲区中,用户决定是否用缓冲区中的数据更新表文件。它是VFP6.0在多用户环境下用来保护对表记录所做的数据更新和数据维护操作的一种技术。 数据缓冲的类型: 记录缓冲: 当记录指针移动或关闭表时,缓冲区自动更新表中的相应记录。 表缓冲:当发出更新表的命令或关闭表时更新表。 缓冲锁定方式:有两种:开放式 和 保守式。 3.5 表的索引 1. 基本概念 记录的顺序 : 物理顺序:即表中记录的存储顺序。用记录号表示。 逻辑顺序:表打开后被使用时记录的处理顺序。 索 引: 指按表文件中某个关键字段或表达式建立记录的逻辑顺序。它是由一系列记录号组成的一个列表,提供对数据的快速访问。索引不改变表中记录的物理顺序。表文件中的记录被修改或删除时,索引文件可自动更新。 索引关键字(索引表达式):用来建立索引的一个字段或字段表达式。 注意:1)用多个字段建立索引表达式时,表达式的计算结果将影响索引的结果; 2)不同类型字段构成一个表达式时,必须转换数据类型。 索引标识(索引名): 即索引关键字的名称。必须以下划线、字母或汉字开头,且不可超过10个字。 索引类型:主索引、候选索引、普通索引、唯一索引。 主索引: 组成主索引关键字的字段或表达式,在表的所有记录中不能有重复的值。主索引只适用于数据库表的结构复合索引中。自由表中不可以建立主索引;数据库中的每个表可以且只能建立一个主索引。 候选索引: 在指定的关键字段或表达式中不允许有重复值的索引。在数据库表和自由表中均可为每个表建立多个候选索引。 普通索引: 也可以决定记录的处理顺序,但是允许字段中出现重复值。在一个表中可以加入多个普通索引。 唯一索引: 参加索引的关键字段或表达式在表中可以有重复值,但在索引对照表中,具有重复值的记录仅存储其中的第一个。 2. 索引的作用 用途 采用的索引类型 排序记录,以便显示、查询或打印 使用普通索引、候选索引或主索引 在字段中控制重复值的输入并对记录排序 对数据库表使用主索引或候选索引,对自由表使用候选索引 准备设置表关系 依据表在关系中所起的作用,使用普通索引、主索引或候选索引   3.索引文件的种类 索引文件种类 特征 关键字数目 限制 结构复合索引文件 .CDX 使用和表文件名相同的基本名,随表的打开自动打开。可以看成表结构的一部分。 多关键字表达式,称为标识。 有效表达式限制在 240 个字符之内。 非结构复合索引文件 .CDX 必须明确地打开,使用和表名不同的基本名。其中不能创建主索引 多关键字表达式,称为标识。 有效表达式限制在 符之240 个字内。 独立索引文件 .IDX 必须明确地打开,文件的基本名由用户定义。一般作为临时索引文件。 单关键字表达式。 有效表达式限制在 100 个字符之内。 结构复合索引文件(扩展名为.CDX)的特点: .在创建索引标识时自动创建。 .在打开表时自动打开。 .在同一索引文件中能包含多个排序 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,或索引关键字。 .在添加、更改或删除记录时自动维护。 4. 创建结构复合索引 VFP中创建索引文件有两种方式:表设计器方式和命令方式。 (1)表设计器方式 打开表文件 →从显示菜单中选择表设计器 → 在表设计器中单击索引 → 输入索引名并选择索引类型 → 选择索引的方向(按升序或降序排列记录) → 在表达式框中输入作为排序依据的索引关键字 → 在筛选框中输入筛选表达式 → 单击确定,完毕。 (2) 命令方式 命令 功能 INDEX ON <索引关键字段> TAG <索引标识>[FOR 条件 ] [ASCENDING | DESCENDING] [CANDIDATE | UNIQUE] 用INDEX ON 命令建立一个索引文件 ALTER TABLE <表名> ADD PRIMARY KEY <关键字段名> TAG <索引标识名> 用SQL命令创建主索引 ALTER TABLE <表名> ADD UNIQUE <关键字段名>TAG <索引标识名> 用SQL命令创建候选索引 注意:1)备注型字段和通用型字段不能作为索引关键字段; 2)不要建立无用的索引,以免降低系统性能; 3)及时清理已无用索引标识,提高系统效率。 4)在复合索引的多个索引中,某一时刻只有一个索引对表起作用。 5. 索引的修改和删除 修改: 打开表设计器,在索引对话框中进行所需修改; 或 用命令重新建立一个相同标识名而索引表达式不同的索引。 删除: 打开表设计器,在索引对话框中删除不需要的索引标识即可; 或 用命令: DELETE TAG ALL | 索引标识1 [, 索引标识2 ] … 删除不需要的索引标识,ALL表示全部标识。 6. 索引的使用 功能 命令格式 打开表的同时指定主控索引 USE <表名> ORDER <标识名> 为已打开的表确定主控索引 SET ORDER TO <标识名> [ASCENDING | DESCENDING] ] 搜索某张已建立索引的表 FIND <表达式> 搜索表中首次出现的记录 SEEK <表达式> [ <索引标识名>] SEEK <表达式> 第四章 数据库的创建和使用 4.1 VFP数据库 1. 数据库的基本组成 数据库由一个以上相互关联的数据表组成,可以包含一个或多个表、视图、到远程数据源的连接和存储过程。 视图(view): 一个保存在数据库中的、由引用一个或多个表、或其他视图的相关数据组成的虚拟表,可以是本地的、远程的或带参数的。 存储过程(stored procedure): 是保存在数据库中的一个过程。该过程能包含一个用户自定义函数中的任何命令和函数。 创建数据库时系统自动生成3个文件: 数据库文件: 扩展名为 .DBC 数据库备注文件: 扩展名为 .DCT 数据库索引文件: 扩展名为 .DCX 2. 数据库的设计过程 1)明确建立数据库的目的和使用方式 2)设计所需的数据表(包括表结构和表记录) 3)建立表之间的关系 4)改进设计 4.2 数据库的创建 1. 数据库的创建过程 数据库的创建过程中一般会涉及下面一些常用操作: 1)创建新表 → 用表设计器 (设置字段属性和表属性) 2)添加表 → 用数据库设计器按钮或数据库菜单 3)创建视图 → 用视图向导、视图设计器 4)建立关系 → 用鼠标将父表的索引拖到子表的相关索引上 5)编辑关系 → 用数据库菜单或快捷菜单 → 参照完整性生成器 6)移去关系 → 用快捷菜单或按delete键 7)修改表 → 用表设计器 8)删除表或视图 → 用数据库设计器按钮或数据库菜单 2. 数据库的新建、打开、关闭 (1)新建数据库: 从文件菜单中单击新建 → 在新建对话框中选择数据库并单击新文件 → 在创建对话框中给出库文件名和保存位置 → 在数据库设计器中建立所需的数据库。 或 从命令窗口中输入命令: create database 数据库名 (2)打开数据库: 从文件菜单中单击打开 → 在打开对话框中给出库文件名和保存位置并确定之。 或 从命令窗口中输入命令: open database 数据库名 (3)关闭数据库: 从命令窗口中输入命令: close database && 关闭当前数据库 或 close all && 关闭所有被打开的数据库 注意:1) 关闭了数据库表不等于关闭了数据库,但关闭了数据库则其中的数据表被同时关闭; 2) 用鼠标关闭了数据库设计器窗口并不能代表关闭数据库。 3. 用数据库设计器设计数据库 (1) 调出表设计器,建立一个新数据表
本文档为【VFP教程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_698378
暂无简介~
格式:doc
大小:654KB
软件:Word
页数:42
分类:互联网
上传时间:2011-06-02
浏览量:109