《VF程序设计》知识要点11秋.docx
- 文档编号:6868621
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:29
- 大小:66.07KB
《VF程序设计》知识要点11秋.docx
《《VF程序设计》知识要点11秋.docx》由会员分享,可在线阅读,更多相关《《VF程序设计》知识要点11秋.docx(29页珍藏版)》请在冰豆网上搜索。
《VF程序设计》知识要点11秋
《VF程序设计》课程知识要点
绪论数据库系统概述
1.数据处理是对数据进行的采集、存储、检索、加工、变换和传输。
数据管理经历了人工管理、文件系统管理、数据库系统管理三个阶段。
2.数据库(Database,DB)是依照某种数据模型组织起来,并存放二级存储器中的数据集合。
数据库的基本结构分三个层次:
(1)物理数据层。
(2)概念数据层。
(3)逻辑数据层。
数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的阶段是数据库系统。
3.数据库管理系统(Databasemanagementsystem,DBMS)是位于用户与操作系统之间的一层数据管理软件,是操作系统支持下的系统软件。
它的主要功能包括:
数据定义、数据操作、数据查询、数据库的运行管理、。
4.数据库系统(Databasesystem)实际是一个可运行的存储、维护和应用系统所提供数据的软件系统,是存储介质、处理对象和管理系统的集合体,它通常由数据库、数据库管理系统、应用程序和数据库开发人员和数据库管理人员组成。
其软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。
数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。
数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。
5.数据库一般有三种数据模型:
层次型、网状型、关系型。
在关系模型中,每一个关系的逻辑结构都是一个二维表,表中的一行称为一条记录,表中的一列称为一个字段。
关系运算是指从一个关系(二维表)经过关系运算后,得到一个新的关系(二维表结构),专门的关系运算包括:
投影、选择和连接。
第1章VisualFoxPro
6.VisualFoxPro是微软公司推出的数据库应用开发工具,常用版本VisualFoxPro6.0,它是中小型数据库应用系统的首选工具。
VisualFoxPro的工作方式:
交互操作方式和程序执行方式。
其中交互操作方式又分为命令执行方式和菜单选择方式。
向导作为一种快捷的设计工具,通过一组对话框依次与用户对话,引导用户分布完成VisualFoxPro的某项任务。
VisualFoxPro有20余种向导工具。
设计器用来创建和修改VisualFoxPro应用程序所需组件,生成器用来在VisualFoxPro应用程序组件中添加某些控件,或设置其属性。
生成器不能独立使用,必须依附于某个设计器。
7.在VisualFoxPro中,开发数据库应用系统(DBAS),通常为每个DBAS建立一个项目文件(扩展名为.pjx)
创建项目文件createproject<项目名>
修改项目文件modifyproject<项目名>
“项目管理器”窗口是由6个选项卡组成,各选项卡的功能如下。
(1)“全部”选项卡:
用于显示和管理项目包含的所有文件。
(2)“数据”选项卡:
包含项目中所有的数据,如数据库、数据库表、自由表、查询和视图等。
(3)“文档”选项卡:
包含显示、输入和输出数据时所涉及到的所有文档,如表单、报表和标签等。
(4)“类”选项卡:
显示和管理用户自定义类。
(5)“代码”选项卡:
显示与管理各种程序代码文件,包括扩展名为*.PRG的程序文件和扩展名为*.APP的应用程序文件,以及API函数库等。
(6)“其他”选项卡:
显示与管理有关的菜单文件、文本文件、位图文件、图标文件和帮助文件等。
第2章表的基本操作
8.安装完VisualFoxpro后,系统自动使用默认值来设置环境。
要定制自己的系统环境,使用”工具”菜单下“选项”命令。
用户文件默认路径的设置:
工具——选项——“文件位置”选项卡——“默认目录”选项,
注意:
设置为默认值,这样下次开机,系统设置的默认目录仍然有效。
9.数据库由一个以上相互关联的数据表组成,其文件扩展名为*.DBC,可以包含一个或多个表、视图、到远程数据源的连接和存储过程等。
用户可以同时打开多个数据库,但只能有一个数据库成为当前数据库。
创建数据库:
Createdatabase<数据库名>
打开数据库:
Opendatabase<数据库名>
设置当前数据库:
Setdatabaseto<数据库名>
关闭数据库:
Closedatabase
删除数据库:
Deletedatabase<数据库名>[deletetables]
如果选用[deletetables]短语时,数据库中的所有数据表都将被删除;否则至删除数据库文件,原数据库中的表则变成自由表。
10.数据表是用来存储和管理数据记录,数据在表中是按行和列的格式排列的,每行代表唯一的记录,而每列代表记录的一个字段。
表文件名可以由字母、汉字、数字和下划线组成,扩展名*.DBF。
另外还有一个备注文件(.fpt),用来存放备注字段和通用字段的内容。
数据表又分为自由表和数据库表,自由表不能建立永久关系。
自由表中字段名由字母、汉字、数字或下划线等组成,其长度不超过10个字符。
数据库表中可以建立长字段名,最长可达128个字符,长文件名被存储在*.dbc文件的一个记录中,它的前10个字符同时还作为字段名保存在*.dbf文件中。
数据库表具有自由表所没有的属性,如字段级规则和记录级规则、触发器和永久关系等。
在定义表结构时,要定义表中每个字段的名称、类型、宽度、小数位数和是否接受空值。
表中的一行也称为元组,表中的一列也称为属性。
一个汉字占2个字节,而整数型占4个字符。
某属性不是该关系的主关键字,却是另一个关系的主关键字称为外部关键字,
属性的取值范围称为域。
11.建立一张新的数据表,可以通过三种途径,即表设计器、表向导和命令。
命令方式:
CREATETABLE|DBF表名称[NAME长表名][FREE](字段名1字段类型[(字段宽度[,精度])][NULL|NOTNULL][,字段名2…]
【例】要创建学生档案表(xsda.dbf)结构,可按以下命令操作。
CREATTABLExsda(编号N(6),学号C(6),姓名C(10),性别F
(1),出生年月D(8),入学成绩N(6,2),简历M(4))
备注型字段和通用型字段的长度固定为4个字节,其内容都存放在与表同名的备注文件(*.fpt)中。
打开表:
use表名
关闭表:
close[all|tables[all]]
修改表结构的命令P64
(1)添加一个字段:
Altertabledxadd备注m(4)
(2)修改一个字段:
altertablesbalter编号C(6)
(3)删除一个字段:
altertablesbdrop简历
(4)重命名一个字段:
altertablesbrename入学成绩to高考总分
12.插入记录
(1)Append[blank]向表的末尾加入一条空记录。
(2)Insert[blank][before]指在表的指定位置上插入一条新的记录。
选用BEFORE选项时,表示在当前记录前插入,否则在当前记录后插入。
完整命令格式:
INSERTinto表名[(字段名1[,字段名2,…])]
VALUES(表达式1[,表达式2,…])
例:
比较下面两种形式的差别
Insertintoxsda;
values(1050,”WJ050”,”刘流”,.F.,{08/01/88},603.50,”甘肃兰州”)
Insertintoxsda(编号,学号,姓名,出生年月);
values(1051,”WJ051”,”武婷”,{04/05/88})
13.修改和替换记录的内容REPLACE…WITH命令p59
REPLACE…WITH命令可以在不打开任何编辑窗口的情况下,直接对表进行字段值的修改和替换,其格式为:
REPL字段1WITH表达式1[ADDITIVE][,字段2WITH表达式2[ADDITIVE]][<范围>][for<条件>][while<条件>]
其中,[ADDITIVE]选项表示可将新加入的内容添加到原内容的后面,比如在备注文件的后面加上新的文字。
例:
给每位男生生活补助加20元
usexsda
replace生活补助with生活补助+20for性别=.T.
replace工资with工资+500for职称=“教授“
14.LIST/DISPLAY[<范围>][FOR<条件>][WHILE<条件>][[FIELDS]<表达式表>]
DISPLAY命令用于在VisualFoxpro的主窗口中,显示当前记录指针所指向的记录,它可以简写成DISP;
而LIST命令则列出表中的所有记录,它与DISPLAYALL功能基本相同。
表示范围的短语有all、next、record、rest
例:
当前记录号是10,若要显示当前记录:
Display
若要显示10、11、12、13、14号记录的内容,应使用的命令是:
LISTNEXT5。
15.表记录的定位
(1)绝对定位GO[RECORD]表达式[IN工作区│IN表别名]
GOTO[RECORD]表达式[IN工作区│IN表别名]
例如:
go3指向第三条记录
GOTOP将记录指针定位在表的第一个记录(TOP)
GOBOTTOM将记录指针定位在表的最后一个记录(BOTTOM)
注意:
表的最后一条记录并不等于表尾,因为表的末尾是一个指针,它指示下一条新记录将存储的位置,也可以把它看做是一条空记录。
所以,程序中虽然用了GOBOTTOM命令,但函数EOF()返回的值是.F.。
记录指针标志可以理解为保存当前记录号的变量,它的初值总是1,不可能为0或负数,最大值是表中记录的总数加1。
如果刚打开的表中没有记录,bof(),eof()的值为.T.,recno()的值为1
如果刚打开的表中没有记录,bof(),eof()的值为.F.,recno()的值为1
(2)相对定位SKIP
当n为正值时,则向下移动;当n为负值时,则向上移动;当无n时,则向下移动1个,如下所示。
SKIP&&记录指针指向当前记录的下一个记录
SKIP-2&&记录指针指向当前记录之前的第2个记录
SKIP5&&记录指针指向当前记录之后的第5个记录
已知当前表中有20条记录,当前记录为第3号,在执行命令skip7后,当前为第10号记录?
16.记录的删除P68
(1)逻辑删除DELETE
(2)物理删除pack将打上删除标记(逻辑删除)的记录作物理删除
(3)恢复记录recall
(4)清除记录ZAP
第3章查询与统计
17.数据表的排序
SORTON<字段1>[/A][/C][/D][,<字段2>[/A][/C][/D]…]TO<文件名>
[<范围>][FOR<条件>][WHILE<条件>][FIELDS<字段表>]
[ASCENDING|DESCENDING]
[/A]为升序排序,指定[/D]为降序排序,默认为升序排序。
[/C]排序时不区分字母大小写。
排序与索引的区别是:
排序将产生一个新的数据表,新表与原表不再有任何联系,而索引是产生索引文件,通过指针相关联,索引查询,先通过关键字排序在索引中顺序查找相应的记录号,再通过关联在原表中找到相应的记录。
18.索引类型:
在VisualFoxPro中,它包括主索引、候选索引、普通索引和惟一索引四种。
主索引:
组成主索引关键字的字段或表达式,在表的所有记录中不能有重复的值。
主索引只适用于数据库表的结构复合索引中。
自由表中不可以建立主索引,在数据库中的每个表,可以且只能建立一个主索引。
VisualFoxPro不允许在关键字字段中有重复值或空值。
在VFP中,用命令可以创建候选索引、普通索引和惟一索引,但是不可以创建主索引。
VisualFoxPro支持单索引文件(.idx)和复合索引文件(.cdx)
创建单索引的命令是INDEXON<索引关键字表达式>to<单索引文件>[for〈条件〉]。
例:
indexon编号tobhao
复合索引文件包括结构复合索引文件、独立复合索引文件。
结构复合索引文件与表文件同名,并且随表的打开而打开,随表的关闭而关闭
建立结构复合索引:
p75
Usesb
Indexon价格tagjg
Indexon部门+str(价格,9,2)tagbmjg&复合索引表达式类型要一致。
使用索引(设置当前索引)
Setordertojg
建立独立复合索引文件的命令
Indexon<索引关键字表达式>tag<索引标识名>of<非结构复合索引文件名>[for<条件>]
Indexon入学成绩tagcjofsbcj
19.顺序查询P78
LOCATEFOR逻辑表达式1[范围][WHILE逻辑表达式2][NOOPTIMIZE]
……
CONTINUE
LOCATEFOR在找到符合条件的第一条记录以后,就停止查找,而CONTINUE命令则告诉系统继续往下查找。
Found()函数用来表示locate命令是否找到符合条件的记录。
例如:
p129将sb表中的第1个非主要设备的价格减少10%。
Usesb
Locatefornot主要设备
Iffound()
Display名称,价格
Replace价格with价格*(1+0.1)
Display名称,价格
索引查询
Seek<表达式>
例usesb
Inderon编号tagbh
Seek“0001”
20.工作区p80
工作区与数据表一一对应关系,一个工作区中只能打开一张表,一张表也只能在一个工作区中打开。
Usesbin3
Select0
Usesb
21.数据表的统计p88
(1)COUNT[范围][FOR<条件>][WHILE<条件>][TO<内存变量>]
功能:
统计指定范围内满足条件的记录个数。
(2)TOTAL0N<关键字>TO<文件名>[<范围>]
[FOR<条件>][WHILE<条件>][FIELDS<字段表>]
功能:
对当前数据表中指定的数值型字段进行分类求和,并生成一个汇总数据表。
(3)SUM[<表达式表>][<范围>][FOR<条件>][WHILE<条件>][TO<内存变量表>]
功能:
在指定范围内满足条件的所有记录,计算出各记录对应于指定表达式的值,再分别对这些值求和.
?
MAX(‘74’,’93’,’-23’,’45’)的值是93,
(4)AVERAGE[<表达式表>][<范围>][FOR<条件>][WHILE<条件>][TO<内存变量表>]
功能:
将指定范围内满足条件的所有记录,计算出各记录所对应于指定表达式的值,再分别对应这些值求平均值。
22.字段有效性规则设置字段掩码p113
“输入掩码”(InputMask)是指定字段的值必须遵守的标点、空格和其他格式的要求。
“输入掩码”是字段或者控件的一种属性,用以限制或控制用户输入数据的格式。
与“格式”相同,“输入掩码”属性也对应着各种格式化代码。
9只允许输入数字
若要输入类似(010)123-45678这样的号码,则需要在“输入掩码”输入(999)999-99999。
X只允许输入字符
23.记录的有效性规则P113
记录有效性规则是用来设置同一记录不同字段数据之间所要满足的逻辑关系。
24.关系的类型:
“一对一”关系、“一对多”关系、“多对多”关系
表与表之间的连接有四种类型:
内部联接(innerjoin)
左联接(leftoutjoin)右联接(rightoutjoin)完全联接(fulloutjoin)
25.关系的完整性分为域完整性、实体完整性、参照完整性三种。
P112
域完整性:
即字段级验证规则;
实体完整性:
即记录级验证规则;
参照完整性是VisualFoxPro定义的一个规则系统,通过使用这个规则,系统来确保相关表中记录之间关系的有效性,并且不会意外地删除或更改相关数据,使相关表之间保持数据一致性。
具体说,参照完整性规则包括更新规则、插入规则、删除规则。
第4章结构化程序设计
26.常量的类型有字符型、数值型、货币型、日期型、日期时间型、逻辑型等多种类型。
(1)字符型常量的定界符有''、""、[]
(2)日期型、日期时间型常量的定界符{}
(3)逻辑型常量.T..F.
VisualFoxpro中含有系统变量、字段变量、内存变量三种系统对象变量,并且明确了他们的分工。
27.一个数据表文件最多可有128个字段变量,且它们的总长度不得超过4000个字节。
在数据表中有一个专门用来指示当前记录的记录指针,字段变量的当前值就是当前记录中该字段的值。
PARAMETERS命令声明的形参变量被看作模块程序中建立的私有变量;
LPARAMETERS命令声明的形参变量被看作模块程序中建立的局部变量。
28.日期时间表达式
+:
加(秒或天数)。
{^2007/12/0110:
38:
20AM}+30结果为{^2007/12/0110:
38:
50AM};而{^2007/12/01}+30结果为{^2007/12/31}
-:
减(秒或天数),其操作同上
注意:
两个日期不能相加,{^2007/12/01}+{^2007/12/31}是错的
29.字符型表达式+-$例P51
+:
用于连接两个字符表达式,结果为将两个字符型数据首尾相接的字符型数据。
–:
用于连接两个字符表达式,同时删除第一个字符串的尾部空格。
$:
用于两个字符表达式之间的比较,判断第一个字符数据是否完全包含在第二个字符型数据中。
其用法为
关系表达式<>=<>!
==p50表2.6
逻辑表达式andornotP50表2.6
30.常见系统函数P53
(1)AT(<字符表达式1>,<字符表达式2>)[,<数字>])
检索字符表达式1在字符表达2中的位置,数字表示第几次出现
例:
?
AT("科技","Help科技")结果是:
5
?
AT(“a”,”farmarom”,2)结果是:
5
(2)LEN(<字符表达式>)
测定字符串的长度
例:
?
LEN("What'syourname")结果是:
16
(3)BETWEEN(<被测试的表达式>,<低限>,<高限>)
测定表达式是否在两个表达式之间,返回的结果为逻辑型
?
BETWEEN(3*6,12,25)结果是:
.T.
(4)EOF([<工作区号>|<表别名>])
BOF([<工作区号>|<表别名>])
RECNO([<工作区号>|])
(5)substr(<源字符表达式>,<起始位置>[,<子串长度>])
?
substr(“workroom”,5,2)结果是:
ro
left()right()trim()
Str()asc()chr()val()int()mod()round()abs()sqrt()
Max()min()
Date()year()mouth()day()time()ctod()dtoc()datetime()
Iif()
分析复杂表达式的运算结果(主要理清运算符的运算的优先次序):
例:
表达式“ab”$”cab”and9+3>12or3+8>12的结果为:
.T.
31.程序文件的扩展名为*.prg
命令方式:
MODIFY|MODICOMMAND|COMM[[路径]文件名]
运行程序格式:
DO<程序名>
32.赋值语句:
STORE<表达式>TO<名称列表>或<名称>=<表达式>
STORE40*2-3TOA,B,C
today={^2007/01/22}
today=CTOD("01/22/2007")
33.?
|?
?
命令
格式:
?
|?
?
表达式[FUNCTION参数][FONT字体名,字体大小]…
功能:
在屏幕上显示表达式的内容。
说明:
?
表达式:
用于对表达式进行计算,然后在屏幕上新起一行显示计算结果;
?
?
表达式:
不换行而接着当前行直接输出。
34.INPUT[<字符表达式>]TO<内存变量>
功能:
该命令等待用户从键盘输入数据,可以输入任意合法的表达式。
输入字符串时必须加定界符''、"",输入逻辑型常量时要用圆点定界(如:
.T.、.F.)。
ACCEPT[<字符表达式>]TO<内存变量>
功能:
该命令等待用户从键盘输入字符串。
该命令只能接收字符串。
在输入字符串时不需要加定界符。
35.@<行,列>[SAY<表达式>]|[GET<变量>[RANGE<表达式1>,<表达式2>][VALID<条件>]
功能:
在屏幕上指定的行、列位置输出指定表达式的值,并且将输入的数据保存到所指定的变量中。
说明:
①<行,列>用于指定在屏幕上输出的行、列位置坐标,行和列均应是数值表达式,并且系统将自动对其取整。
②SAY<表达式>子句是用来在屏幕上指定的行、列位置输出指定表达式的值。
③GET<变量>子句是用来在屏幕上指定的行、列位置输入数据给指定的变量,且必须与READ命令配套使用。
36.分支结构程序设计
IF...ELSE...ENDIF和DOCASE...ENDCASE
37.循环结构程序设计
当型循环结构步长型循环结构扫描型循环结构
EXIT是无条件结束循环命令,使程序跳出DOWHILE…ENDDO循环,而去执行ENDDO后的第一条命令。
EXIT只能在循环结构中使用,但是可以放在DOWHILE…ENDDO中任何地方。
LOOP控制直接返回到DOWHILE语句,而不执行LOOP和ENDDO之间的命令。
因此LOOP称为无条件循环命令,只能在循环结构中使用。
38.子程序、过程、自定义函数的调用
Do<子程序名>[With<实际参数表>]
例题5-23
DO<过程名>[With<实际参数表>]
例题5-24
<函数名>[<参数表>]
例题5-25
在程序中没有通过PUBLIC和LOCAL命令声明全局变量和局部变量,而由系统自动隐含建立的变量都是私有变量。
全局变量又称公共变量,在任何模块中都可使用的变量。
私有变量仅在定义它的模块以及下层模块中有效,而在定义它的模块运行结束时自动清除。
本地变量又称局部变量,只能在建立它的模块中使用,而且不能在高层或底层模块中使用,该模块运行结束时本地变量就自动释放。
第5章菜单设计
39.菜单同样有着自己的组织结构(树型结构),它是由菜单栏、菜单标题、菜单和菜单项组成
创建菜单:
CreateMenu
结果栏。
选定菜单项的类别,包括有:
①子菜单:
即此菜单项下还有子菜单,单击右边的编辑按钮可编辑子菜单;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VF程序设计 VF 程序设计 知识 要点 11