《VFP程序设计复习提纲.doc.pdf》由会员分享,可在线阅读,更多相关《VFP程序设计复习提纲.doc.pdf(25页珍藏版)》请在三一文库上搜索。
1、数据库管理系统Visual FoxPro程序设计复习提纲 一、数据库基础知识 1、 信息、数据、数据库、数据库管理系统、数据库系统和数据模型数据:存储在媒体 上的能够识别的符号。 分为数值型和非数值型信息:被加工成特定形式的有意义的数据。: 数据库(DB):存储设备上,结构化的相关数据的有序集合。 数据库系统(DBS):包括硬件系统(指计算机处理数据的计算机硬件部分)和软件系 统(操作系统,数据库管理系统、数据库管理员、用户及各种应用程序、数据库)。 数据库管理系统(DBMS ):为数据库的建立、使用和维护而配置的软件。是数据库系 统的核心。具体的有数据描述DDL,数据库操作DML,数据库控制
2、DCL 和一组操作例行 程序。 数据模型:表示实体间联系的方法。常用的有层次(树型)模型、网状模型、 关系模型、关系对象型、面向对象型。 2、关系数据库的基本概念 关系模式:对关系的描述。格式为:关系名(属性名1,属性名2,,属性 名n)o 关系:一个关系就是一张二维表格,以磁盘文件的形式存在。 元组:二维表格中的一行,存储文件中的一个具体的记录。 属性:二维表格中的一列,属性值是各个记录中的字段值。 域:属性的取值范围,即不同元组对同一个属性的取值所限定的范围。 Visual FoxPro属于关系型 ,处理的是一张线性的二维表格。 关键字:属性或属性的集合,其值能够唯一的标识一个元组。 关系
3、的基本运算:选择(找出满足给定条件的元组的操作,从横向行的角度), 投影(从 关系中指定若干属性组成新的关系,从纵向列的角度),联接(生成的新关系中包含满 足联接条件的元组,将两个关系的属性名拼接) 3、Visual FoxPro的主要性能指标及运行环 性能指标:记录数(一个表最多10亿条记录),表中的字段数(最多255个字 段,其中 C型v=254个字符,每个记录的最大长度65500字节,数值长度20位、 有效位16位, 索引关键字的长度100 (压缩索引为240)字节,默认内存变量最多1024个,内存变量 的最多个数6500个,数组的最多个数6500个等 运行环境:Win95以上 4、Vi
4、sual FoxPro的基本语言成分 (1)文件类型:?PJX、?DBC ?DBF、FPT、IDX (CDX )、FMT FRX、 PRG、?SCX、?SCT、?MEM、?MNX ?MPR ?QPR、?EXE、? APP、.TXT 等。 (2)数据类型:常量与变量. 字段变量与内存变量的数据类型。 常量:程序运行的过程中其值不会发生变化的量,分为字符型. 数值型 . 日期 字符型(C字符串型)常量:用定界符(单引号、双引号、中括号)括起来的字符串。 当定界符作为字符串的一部分时,用另外一种定界符。 数值型(N):由09的数字,正、负符号,字母E组成。例:122.3, l?223e+2 等。 型
5、、 逻辑型 . 日期时间型、货币型。 注:不能直接输入。 用CTOD函数转换 , 如CTOD (“08/30/2003 ”)或用 A2003-08-30 格式输入。 逻辑型(L): .t.或?y?,?f?或?n? 变量:程序运行的过程中,其值可以改变的量,具有变量名,注意变量命名的 规则( 由字母或汉字开头的字母、数字、下划线串。) 内存变量:有C, N, D, L, S, T赋值时决定类型。重新赋值可以改变 类型。 字段变量:有C, N, D, L, M依赖于数据库,类型在创建数据库时确定, * 、/-+ 、?)、字符、日期一关系- 逻辑(?not?f?and? (5)命令结构、书写规则及命
6、令的执行方式 命令的一般形式: 字符运算符 : 结果为字符串,可以比较大小 日期运算符 : +, ?。两日期可以相减,结果为两日期相差的天数。可以加 或减一个整数,结果将日期推前或延后多少天,仍为一个日 期。日期时间型相减为相隔的秒数。 关系运算符 : =,或#, , $O结果为逻辑值。 逻辑运算符 : ?noto ?ando?oro结果仍为逻辑值。 命令字范围表达式表fields v字段名表 for v 条件 命令字:英文动词,可只写前四个字母,不分大小写,但须为半角字符。如 DISP=DISPLAYo 范围:操作的记录的范围, 有pH I next n I record n ? rest
7、条件:由条件表达式担任,其值为逻辑值的表达式均可。 书写规则:命令行最长8192字符,可用续行。 执行方式:交互式(命令窗口和菜单)和命令文件式(批处理)。 二、表文件的基本操作 1、Visual FoxPro的启动和退出 启动: 开始 f 程序f Microsoft Visual FoxPro o SET DEFA TO A 退出: OUIT 或文件一退出 2、表文件结构的操作 VFP中的表分为数据库表和自由表 自由表建立: 文件 f 新建 f 表 CREA v 库文件名 ,项目管理器中建立 注:表设计器的使用。建立扩展名为?dbf,若有备注字段还会生成相应的备注文 件?FPT。 表文件结构
8、的显示:注:刚建的表是打开的, LIST STRU TO PRINT 连续 DISP STRU TO PRINT 分屏 表文件结构的修改:打开表文件以后(刚建的表是打开的) ?显示f 表设计器 ? MODI STRU 可以增加和删除字段,对字段名,类型,宽度等进行修改。注意,可能导致数 据项丢失,分多次进行。 利用结构文件建立表文件结构: COPY TO v 库文件名STRU EXTEND CREA v 新库文件名FROM v 结构库文件名 表文件结构的复制: COPY STRU TO v 库文件名FIELDS v 字段名列表 3、文件操作 : 文件的建立: 表文件的打开:USE v 库文件名
9、ALIAS v别名 表文件的关闭: r USE CLOSE DATABASE CLOSE ALL 1=1 丨CLEAR ALL SET INDE TO 只关闭索引文件 QUIT SET PROC TO 文件的复制:COPY FILE v源文件名TO v目标文件名 表文件的复制:(当前打开表) COPY TO v新库文件名for v条件 fields v字段名列表sdf 文件的换名:rename v 源文件名to v 新文件名 文件的删除: rdele file V文件名若是表文件必须先关闭。 _Erase v 文件名 文件的输出: 表文件打开后用list/disp记录 文本文件,命令程序文件用
10、type v 文件名 4、数据的输入、编辑、输出;数据的录入与追加;数据的编辑修改;数据的输出。 数据的录入与追加:建表时录入和追加式录入。 r显示 f 追加方式 Appe blank Appe fromv 源库文件名fields v字段名列表for v条件 .Appe fromv 文本文件名sdf fields v字段名列表for v条件 记录的插入: insert before blank 数据的编辑修改:(全屏幕) edit change browse nomo 表数据的输出F list 范围表达式表forv条件off to print isp 范围 表达式表 forv条件off to
11、print list范围省略时为all, disp范围省略时为当前记录,注加条件后的disp范围省 略时也为ALLo 注:以上操作完成后记录指针的位置。 5、数据记录指针的定位:绝对定位;相对定位;条件定位 绝对定位:go top/bottom/ 数字表达式 相对定位:skip 土 v 数字表达式 条件定位:loca for v 条件 cont 继续指向下一条符合条件的记录。 注:表一转到记录级联菜单中相应命令也可完成。 6、数据计算:记录统计;数值字段求和;求平均值;分类汇总。 记录统计:count 范围for v条件 数值字段求和:sum 范围表达式表for v条件to v内存变量名表 求
12、平均值:aver 范围表达式表for v条件to v内存变量名表 分类汇总 :total on v 汇总关键字to v汇总库文件名 注:分类汇总时,先按关键字索引,要看汇总结果须打开汇总库。 7、数据库的重组 : 物理排序:生成排序表文件 to v 新库名 for 排序的字段可以是C, N, D, T, L等。 sort on v 字段名l/a/d/c 逻辑排序:生成索引文件(?idx) 按关键字表达式值升序 index on v 关键字表达式tag v标识名of v复合索引文件 asceding (descending unique additive 注:按关键字表达式值升序/ 降序排列,一
13、个库可建立多个索引文件,同一时刻 只有一个起作用。 Set order to v 数字表达式|tag标识名 索引文件的打开: 厂刚建的索引文件是打开的(对于结构化索引,随表的打开而自动打开,但需设 主控索引) 9 Set index to v 索引文件名表order to Use v 表文件名index v 索引文件名列表orderto 索引文件的修改:打开后用reindex 索引文件的关闭:set index to 或关闭表的同时关闭。 8、表的查询 : 索引快速查询:(建索引后) find v 字符 /v 数字表达式 find &v字符型内存变量名 index on V关键字表达式toV索
14、引文件名单一索引 设置主控索引。 顺序查询 : rfoca Jont 范围 for v 条件 字符串可不用定界符。 seek v 表达式 注(seek):表达式可为C, N, D。为C时须加定界符,为内存变量时 不用&。 模糊查询:用recno(O)测试刚超过目标的下一个记录。 9、多工作区操作: 工作区的选择:sele工作区号 /v 别名/0 表文件的关联:set rela to v 关键字into 别名addi 注:被关联表在别名工作区打开并按关键字建索引,主表在当前工作区打开。是一种临时 关系。分为: 同名字段关联 非同名字段关联 按数字表达式(记录号)关联。 表文件的联接:被联接数据表
15、在别名工作区上打开。 join with v 别名tov新库名for 条件fields v 表文件之间的批量更新: update on v 关键字from v别名repl v字段名1 with v表达式1 random 表文件的关闭:close all 三、内存变量 1、内存变量的定义、赋值、输出、分类、作用域赋值同时定义。Store v表达式tov 内存变量名表 v 变量名=v表达式 输出:list memo disp memo 分类:C, D, N, L, S, T 作用域 : 命令窗口中定义的均为全局变量。程序中的有全局和局部变量,用public 和private定义。 2、内存变量文件
16、(.mem)的建立,调入,清除 建立:save to v 内存变量文件名all like/except v 通配符 调入:restore from v 内存变量文件名addi 清除:release all like/except v 通配符 clear all clear memo release to v数组名 将当前数据库的当前记录的指定字段值传递给相应的数组元素。 Gather from v数组名fields case v 条件n otherwise endcase 循环格式1: do while v条件 exit loop enddo 格式2: 循环体 endfor 格式3:针对表中的
17、记录进行操作 scan 范围for v条件 循环体 endscan 注:条件为逻辑值,为真时执行循环体。根据表记录的循环,根据变量值的循环。循环 体内一定要有改变循环条件的语句 (skip,skip -1 ,cont9k=k+l9k=k-l等) ,否则将进入死循环。加以举例。 for v内存变量=v初值to v 终值stepv 步长 4、过程与过程文件( ?p喑) 建立:modi command v 过程文件名 每一过程以proc v 过程名开头,以retu结束。 打开:set proc to 过程文件名 调用:do v过程名with v参数表 注意:过程调用中的参数传递,自定义函数的使用。
18、5、格式输入、输出命令 行,列say 表达式getv变量pict 格式符 function v功能符range valid v条件default v表达式 read set print on/off set device to screen/print 6、菜单技术 普通菜单: ? ? ? say ?text endtext 亮条式菜单: 行,列prompt Menu to v内存变量 五、VFP项目、数据库、视图、查询(SQL)、各种辅助工具 1?项目管理器:是一个直观层次管理VFP项目中各种文件的工具,管理方式 从逻辑上是集中管理,实际上各种文件仍然独立存在。 上机考试时注意:考试中用到的
19、相关表文件在项目中,上机的编程和表单也要求在项目 中建立。 2.数据库:是一个包含表、索引. 视图、表之间的永久关系等的容器. 注意数据库表与自 由表的区别。 与数据库操作相关的命令: create database v 数据库名 open database v 数据库名 modi database 打开数据库设计器 use数据库名?dbc 数据库中表的新建、添加、删除、表之间关系的建立(三种关系及其含义)以及触发器 的创建。一对一、一对多、多对多。 3.视图:是一种虚表,但通过视图可更改基表中的内容。分为本地视图和远程视图(应 先建连接)。 4、SQL语言(可在命令窗口和程序中使用) (1)
20、表结构的创建: crea table 表名(列定义 , 表约束) 例:crea table stud (姓名char(8),性别char(2) (2) ALTER TABLE 表名 RENAME COLUMN v 列名TO v 新列名 修改字段名例: 在student 表中增加 “ 是否党员”列 ALTER TABLE STUDENT ADD 是否党员logic 注:修改列时,不能改列名,不能将宽度减少(在列中已有数据时),只能修改null/not null约束,其它约束要修改必须先删除 (3)删除数据表的命令格式:(表可以打开,也可以不打开) DROP TABLE v 表名 | (4)向表中
21、插入一新记录(末尾) insert into stud (学号)value (“20030101”) (5)修改表中一行或多行记录的某些列的值 update v表名set 列名=v表达式 ,? where v条件 update zg set 职工号=”20030105” where 职工号=“20030101 ” (6)删除数据记录 dele from v表名where v条件 省略条件:删除所有记录,该删除为逻辑删除(即给符合条件的记录打上删除标记*)。 (7) SQL查询 命令:SELECT v 字段名表FROMv表文件名WHEREv条件 ADD 新列定义 ALTER v 列名 v 数据类
22、型 DROP 约束名 增加新列 修改某列 删除完整性约束 insert into 表名(列名1, ?) values(值1, ) group by 分组字段having v筛选条件order by v排序字段表 ascedesc 说明: (l)v字段名表查询输出的的字段,多个字段用“,”隔开,全部字段用 (2) FROMv表文件名:查询的表文件,可打开或不打开。 (3) WHEREv条件 : 引导查询条件。 (4) GROUP BY v列名,v列名 ?HAVINGv筛选条件: 把查询结果中的行按一个或多个列的值分组;可以指定在查询结果中的各组应 满足的条件。 (5) ORDER BY v 列名
23、ASC/DESC, v 列名ASC/DESC?h 用于指定一 个 或多个数据作为排序的依据。 sele * from stud & 从表stud.dbf中输出所有字段) sele姓名,性别,数学from stud where性别 =”女” and数学=60 (and/or/not可加/ 不加两点) & 从表中输出及格女同学的姓名、性别、数学字段 例2:多表查询 sele stl?姓名sStl.性别,st2?数学,st2?英语from stl,st2 where stl?姓名=st2?姓名 & 以两表相同姓名为查询条件,输出stl.dbf表的姓名、性别st2.dbf表 的数学、英语注意:多表查询
24、时两表的连接(inner,left,right,full all) 例3:分组查询 sele * from stl group by 学号 =J & 输出结果按学号分组排序 sele * from stl group by 性别having count(*)=3 & 输出结果按性别分成两组,且只输出记录个数大于3的一组。 例4:查询排序 sele from stl where subs(学号丄2)=,99, order by 数学desc & 查询结果只输出学号前两位为“99”,且输出结果按数学成绩降序排列。 例5:嵌套查询(查询的条件是另外一个查询的结果) Sele * from stud
25、where 入学成绩 =(sele 入学成绩from stud where;姓名 张三”) 另 注:运算符and ,or,not,between and,in,like (符匹配 _和)。为任意长度的 字符串, _为一个字符或一个汉字(据系统而定) 统计函数AVG, SUM, COUNT, MAX, MIN 的使用。 5.辅助工具: 向导,设计器,生成器。 六、类、对象、可视化程序设计(表单程序设计) 1.类:抽象对象的集合(封装性,继承性,多态性)。 2.对象:是数据和操作数据的一组代码(程序)或过程的封装,将封装体看成 是一个实体(对象)。VFP的对象有:窗口(表单)、表格、列表框、命令按
26、钮等(两 类:容器对象、控件对象)。 (1)对象的属性:对象的特征描述(如大小、颜色等) 对象的属性值可以在属性窗口中进行设置,也可以在代码中进行设置, 注意: 其值的描述。 如颜色用rgb (red, green, blue) Red, green, blue的取值范围为0?255 表单的常用属性:titlebar, caption, width, height, top, left 等 (2)对象的引用:(面向对象程序设计的语法规则) ?绝对引用:格式:对象名1?对象名2 ?相对引用:This 该对象本身 Thisform该对象本身所在表单 Parent 该对象本身的直接容器 Thisfo
27、rmset该对象所在的表单集 3.方法: (1)概念:使对象作出响应的操作程序代码 (2)表单常用方法程序 方法 Line Hide Show Refresh Release (3)调用方法: 说明 表单上画线 隐藏表单 显示表单 刷新表单上控件的值 退出表单 格式:对象名 ?方法名 例:释放当前表单:thisform. release 4、事件 : (1)概念:由用户或系统激活的特定动作,如鼠标的单击、双击等。 (2) VFP常用事件(事件驱动编程) 事件 Click DbClick Init KeyPress 说明 鼠标单击时 鼠标双击时 对象的初始化设置时用户按下并离开键 盘时 Inte
28、ractivechange用户使用鼠标或键盘更新控件的值时发生 5.表单的创建与运行 文件一新建一表单 项目管理器一文档一表单一新建 eate from 表单文件名运行表单右键一运行表单 do form v表单文件名I运行按钮单击 表单的编辑 在表单设计器中进行 modi form v 表单名 6?常用控件的常用属性、方法、事件 (1)标签:caption, fontsize, fontname,wordwrap( 换行人name. (2)文本框:controlsource,passwordcharreadonly, value (3)编辑框:scrollbar,maxlength(允许字符长
29、度,0无限制 ) (4)命令按钮:caption,enabled,visibleo Click(单击事件 ) (5)命令按钮组: (容器 ),bottoncount(按钮数目,默认为2) 选项按钮组:(容器),bottoncount (按钮数目,默认为2),作单项选择用 , 选中后击右键 / 编辑。Caption,value (l-选中,0?未选)。 (7)复选框:caption,value (l-选中,0?未选,2以上不能用)。 (8)下拉列表、组合框:style=0(下拉组合框),style=2(下拉列表框) 区别:组合框可以输入新的内容。 (6) Boundcolumn (绑定到valu
30、e值的列数) (9)列表框:可多行显示,有滚动条。Multiselect (多项选择)boundcolumn, rowsourcetype, rowsource o 常用方法程序:additem,removeitem,clear 等 值),value(启动时的当前值) Columncount,delemark,recordsource(数据来源),recordsourcetype (数据类型)。 输入/ 输出数据 (12)图像:显示?bmp,?jpg格式图像。 (13)计时器:编辑时可见,运行时不可见。Timer事件,系统时钟触发。Enabled (计时器启动与停止),interval单位:毫
31、秒)。 (14)页框: 容器。Pagecount(页数, 默认2页),activepage(启动时活动页)。 Cpation (页标题) (15) activeX控件:在表单上链接word,excel, photoshop等文档。 (16) activeX绑定控件:在表单上显示表的通用型字段controlsource (图像来源) (17)线条. 形状、容器控件 : (18)超级链接:编辑时可见,运行时不可见。链接到internet 常用方法程序 :navigateto,编辑时可见,运行时不可见,设计一标签作为链接的 (11)表格: 功能强大,设计复杂。(容器:标头,列) Picture (图像文件名) , borderstyle (图像边线),strech(填充方式 ,0-超出剪去)。 (10)微调控件 : 起点,编写标签的dick事件代码 : thisform (3)将菜单设计到用户表单上: 菜单设计时:显示一常规选项一顶层表单 表单的init事件中加入:do菜单名?mpr with this,?t? (4)报表:创建与输出 页标头、细节、页注脚,报表控件,分组统计。
链接地址:https://www.31doc.com/p-5616431.html