VF重点总结For Aki.docx
- 文档编号:11410467
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:23
- 大小:122.46KB
VF重点总结For Aki.docx
《VF重点总结For Aki.docx》由会员分享,可在线阅读,更多相关《VF重点总结For Aki.docx(23页珍藏版)》请在冰豆网上搜索。
VF重点总结ForAki
VF重点总结[ForAki©]
1、数据库基本理论
1、信息和数据
信息是以数据为载体的客观世界实际存在的事物、事件或概念在人们头脑中的反映。
数据是反映客观事物属性的记录,是信息的载体。
对客观事物属性的记录是用一定的符号来表达的,因此说数据是信息的表现形式。
数据符号的三种通常形式:
数值型、字符型、特殊型
数据信息处理的三个阶段:
人工管理、文件系统管理、数据库系统管理(分布式+面向对象)
数据库管理系统的特点:
数据结构化、数据共享[目的](数据统一)、数据独立性(数据和操作相分离,不单独编程)、可控冗余度(避免重复、提高效率)
概念区分:
数据库-仓库、DBMS管理系统-处理数据、数据库系统-支持数据库的计算机系统
2、数据库和数据模型
数据模型:
①非关系:
层次(有向树结构,表从属关系)、网状(复杂,有关系连线,通
常要进行拆分)、E-R
②关系[二维表格]:
记录-以横行为单位、关键词-将某数据重复搭桥成为联系、
字段名-属性统称
关系数据库:
关系模式、关系(一vs多)、元组(记录)、属性(字段名)、域(范围)、
关键字(以数码为主,使用时应考虑数据库大小和范围)
关系运算:
①传统集合:
并、差、交、广义笛卡尔积等
②专门:
选择(一条记录)、投影(一段字符)、连接(建立新关系)
数据的一致性和完整性:
实体完整性、域完整性、参照完整性
数据表的建立:
需求分析(精简)→定义表结构(不以数字和下划线开头)→导入数据
2、VisualFoxPro基础
1、设置工作环境
命令:
菜单工具
SET命令:
SETSTATUSBARON|OFF
是否显示状态栏
SETTALKON|OFF
是否显示命令执行的结果
SETDEFAULTTO[cPath]
设置默认的工作目录
SETEXACTON|OFF
是否精确地对2个字符串进行比较
SETESCAPEON|OFF
用户按Esc键时是否取消程序运行
SETDELETEDON|OFF
是否忽略已作删除标记的记录
SETHOURSTO[12|24]
设置时间以12或24小时的格式显示
SETSAFETYON|OFF
是否打开系统的安全性检查
SETEXCLUSIVEON|OFF
数据库是否以独占方式打开
"选项"命令+配置文件
2、工作方式:
菜单(可视化+交互式)、命令(交互式)、程序
3、常量、变量
常量:
字符型(C)[有定界符]、数值型(N)、日期型(D)、逻辑型(L)[TF两边加点]、
日时型(T)、货币型(Y)、不可识别型(U)
变量:
字段、内存(独立内存+数组)、系统
内存变量:
①定义赋值:
<内存变量>=<表达式>
STORE<表达式>TO<内存变量>
②显示:
LIST(滚屏)/DISPLAY(翻屏)MEMORY[LIKE通配符]
[NOCONSOLE]
[TOPRINTER[PROMPT]|TOFILEFileName
③储存:
SAVETO<内存变量文件名>[ALLLIKE/EXCEPT<框架>]
SAVESCREEN[TO]
④恢复:
RESTOREFROM<文件名>[ADDITIVE]
RESTORESCREEN[FROM]
⑤释放:
RELEASE<内存变量表>
RELEASEALL[LIKE/EXCEPT<框架>](加速运行)
数组:
DIMENSION|DECLARE<数组名>(<下标1>[,<下标2>])[,<数组名>(<下标1>[,<
下标2>])]DIME(VF下表为1,刚建立是所有元素的初值为.F.)
系统变量:
_WINDOWS返回逻辑值
_TALLY包含最近执行的表命令处理过的记录数目
4、数据表的基本操作
5、命令结构:
<命令动词>[<范围>][
①范围:
ALL-(缺省)针对所有记录。
RECORD
NEXT
REST-针对从当前记录(包括当前记录)开始直到最后一条记录
②FOR(命令针对满足条件的所有记录,如果命令中未指定范围)
WHILE(从当前记录开始,当遇到第一条不满足条件的记录时便停止操作)
③命令中不区分大小写
6、表的维护
指针定位:
①绝对定位:
GO<数字表达式>/TOP/BOTTOM
②相对定位:
SKIP[±<数字表达式>]
记录追加:
①插入新记录:
INSERT[BEFORE][BLANK]
②追加新记录:
INSERTINTO表名[(字段名1[,字段名2,…])]VALUES(表
达式1[,表达式2,…])
INSERTINTO表名[(字段名1[,字段名2,…])]FROM
ARRAY数组名|MEMVAR
APPEND[BLANK]
AppendFrom<文件名>[Fields<字段表>][For<条件>]
[[TYPE][DELIMITED[WITH<定界符>|WITHBLANK|
WITHTAB]|SDF|XLS]]
定义表结构:
CREATTABLE<表名>(<字段名1><字段类型>[(<字段宽度>[,<小数位数
>])][,<字段名2>…])[FREE]
7、数据表的基本操作
打开:
USE[<表文件名>]
关闭:
命令
功能
CLEARALL
关闭表,选择工作区1,释放内存,但保留系统变量
CLOSEALL
关闭数据库和表,选择工作区1,关闭设计器
CLOSEDATA
关闭数据库。
无库打开则关闭自由表,选择工作区1
CLOSEDATAALL
关闭数据库和自由表
CLOSETABL
关闭数据库表,不关数据库。
无库打开时关自由表
CLOSETABLALL
关闭数据表和自由表,不关数据库
QUIT
退出VF环境
修改表结构:
ALTERTABLE<表名>ADD|ALTER[COLUMN]<字段名><字段类型>[(<字
段宽度>[,<小数位数>])]
ALTERTABLE<表名>DROP[COLUMN]<字段名1>|
RENAME[COLUMN]<字段名2>TO<字段名3>
8、函数[程序代码]
数值运算函数:
ABS(<数值表达式>):
取绝对值
INT(<数值表达式>):
取整
MOD(<数值表达式1>,<数值表达式2>):
取数1除以数2的余数
MAX(<数值表达式1>,<数值表达式2>):
返回两个表达式的最大者
MIN(<数值表达式1>,<数值表达式2>):
返回两个表达式的最小者
ROUND(<数值表达式1>,<数值表达式2>):
求四舍五入值
RAND(<数值表达式>):
返回一个0到1之间的随机数
LOG():
求对数
SQRT():
求算数平方根
字符处理函数:
&<字符型内存变量>:
宏替换操作:
用变量值替换变量名
SUBSTR(<字符表达式>,<起始位>[,<字符个数>]):
从字符串的某位开始
截取N个字符
LEFT/RIGHT(<字符表达式>,<数值>):
从字符串左/右端第一个字符起取
规定个数的字符
LEN(<字符表达式>):
返回字符串的长度
SUBSTR(<字符表达式>,<起始位>[,<字符个数>]):
从字符串的某位开始
截取N个字符
AT(<字符表达式1>,<字符表达式2>[,<数值表达式>]):
返回串1在串2
中的第N次出现的起始位
TRIM/LTRIM/ALLTRIM(<字符表达式>):
删除字符串的尾部/前端/尾部
和前端空格
UPPER/LOWER(<字符串>):
将字符串全部字符转换为大/小写
SPACE(<数值表达式>):
返回<数值表达式>规定个数的空格
STUFF(S1,N1,N2,S2):
将S1中第N1个字符开始的N2个字符用S2
替换
日期处理函数:
DATE():
返回当前系统日期
TIME():
返回当前系统时间(24小时制)
YEAR/MONTH/DAY(
返回与D|T表达式对应的年份/月
份/日期
DATETIME():
返回当前的系统时间(默认格式为MM/DD/YYHH:
MM:
SS
AM|PM)
CMONTH(<日期表达式>):
返回与日期表达式对应的月份的英文名称
DOW/CDOW(<日期表达式>):
返回与日期表达式对应的星期几的数值
(1~7)//星期名称
类型转换函数:
CTOD(<字符表达式>):
将字符串转换成日期型数据
DTOC(<日期表达式>):
将日期型数据转换成字符型。
DTOS(<日期表达式>):
将日期型数据转换成字符串(YYYYMMDD)
VAL(<字符表达式>):
将字符串转换成数值(有非数字自动停止)
STR(<数值表达式>[,<长度>][,<小数位>]:
将数值转换成字符串
ASC(<字符表达式>):
返回字符串首字符的ASCⅡ码
CHR(<数值表达式>):
将数值转换成对应ASCⅡ码字符或相应操作
MTON(<货币表达式>):
把货币型数据转换成数值型数据
NTOM(<数值表达式>):
把数值型数据转换成货币型数据
系统测试函数:
TYPE(<“表达式”>):
测试表达式的数据类型,并返回一个类型符号
FILE(<文件名>):
测试指定的文件是否存在
RECNO():
测试当前记录指针所指记录号
FCOUNT():
测试指定工作区打开表文件的字段个数
FOUND():
测试LOCATE、FIND、SEEK等命令是否查询成功
DELETED():
测试当前记录是否打上删除标记
FIELD(nFieldNumber[,nWorkArea|cTableAlias]):
如果nFieldNumber等于1,则返回表中的第一个字段名
如果nFieldNumber等于2,则返回第二个字段名
如果nFieldNumber大于字段的数目,则返回空字符串
(返回的字段名为大写)
BOF(<数值表达式>):
测试记录指针是否指向文件头
EOF(<数值表达式>):
测试记录指针是否指向文件尾
9、表达式
算术运算表达式:
**(乘方)、^(乘方)、%(取模、余数)、+、-\、*、/
关系运算表达式:
<、<=、>、>=、=(包含匹配)、==(精确匹配)、<>、#、!
=
$(包含,结果为正负,比较双方类型一致)
SETEXACTON|OFF:
指定比较不同长度两个字符串时VF使用的规则
字符运算表达式:
+:
将两个字符串原样连接成一新串
--:
将运算符左边的字符串的尾部空格移到新串的后面
逻辑运算表达式:
非运算(.NOT.)
与运算(.AND.)
或运算(.OR.)
混合运算表达式:
算术运算→关系运算→逻辑运算
10、表结构和记录显示
显示表结构:
LIST/DISPLAYSTRUCTURE
显示表记录:
LIST/DISP[<范围>][FIELDS<字段表>][FOR/WHILE<条件>][OFF]
删除:
①删除文件:
ERASE<文件名>=DELETEFILE<文件名>
②删除记录:
DELETE[<范围>][FOR/WHILE<条件>](逻辑删除)
PACK[MEMO](物理删除)
ZAP(无条件完全记录删除,保留表结构)
恢复:
RECALL[<范围>][FOR/WHILE<条件>]
RECALL:
恢复当前一条记录
RECALLALL:
恢复库中所有记录
RECALLFOR<条件>:
条件恢复
修改:
EDIT/CHANGE[<范围>][FIELDS<字段表>][FOR/WHILE<条件>](开表窗口)
REPLACE[<范围>]<字段1>WITH<表达式1>[ADDITIVE][<字段2>WITH
<表达式2>[ADDITIVE]],…][FOR<条件>](追加而非替换)
11、数据库
创建:
CREATEDATABASE
关闭:
CLOSE
打开表设计器:
MODIFYSTRUCTURE
复制表:
COPYTO表名[使得表结构统一]
COPYSTRUTO表名[复制表结构]
利用已有表文件添加到表中[批量数据追加]:
APPENDFROM表名[FOR表达式]
定位:
LOCATEFOR<表达式>--只能定为满足条件的第一条记录[搭配CONTINUE循环]
12、索引
分类:
单一索引、结构复合索引
单一索引(排序+逻辑):
Indexon<索引文件名>(后缀为.idx)
[默认为从小到大的升序,字段名前加-变为降序]
[物理位置不改变,改变逻辑]
结构复合索引:
①分类:
主索引(一表一个,只有数据库表有,无重复数据)
候选索引(均可建立,一表多个,类似主索引)
唯一索引(可多个,无相同内容的记录)
普通索引(几乎无要求)
②命令:
Indexon<索引表达式>tag<索引文件名>
[ASCE]升序[DESC]降序
[UNIQUE]唯一索引[CAND]候选索引
(后缀为.cdx可使用表设计器中的索引)
打开关闭:
Setindexto<文件名>(单一索引)
Setorderto<数值表达式>(结构复合索引)
利用索引快速查询:
find<>→默认查找字符型
Seek""→必加引号
建立物理排序:
Sorton<字段名>to<新文件名>[/A][/D](升降)
表间永久性联系:
①目的:
维护数据完整性,必须在数据库中
②要求:
母表必须有主索引或候选索引
子表必须有普通索引或唯一索引(保存在数据库中)
③建立步骤:
确定关键字段→确定父表和子表(为关键字段建立主索引)
→为父表建立主索引,为子表建立普通索引
→鼠标拖动父表关键字段到子表
13、参照完整性
目的:
控制记录一致性,能保持一定的表间关系(清理数据库)
分类:
忽略(允许更改父表,不关联子表)
级联(同时更改)
限制(禁止更改)
14、多表操作
原因:
内存有限性,多分配内存工作区
命令:
select<工作区号>|<别名>可定义10个,从A到J
15、了解表间关系
[父子表]父表不需要建立任何索引,子表必须建立索引(关键字)
关系:
一对一、一对多
建立临时关系:
setrelationto[<关联表达式>into<别名>][ADDI]
16、统计与汇总、计数命令
3、SQL语句
1、数据定义
创建:
CNDL常用
CREATETABLE<表名>(<字段名>,<数据类型>)
增加:
ALTERTABLE<表名>[ADDI<新字段名>,<数据类型>,宽度,<小数位数>]
删除:
DROPTABLE
2、数据操作
修改表字段:
ALTERTABLE<表名>[ALTER<新字段名><数据类型>
[(<宽度>[,<小数位数>])
删除表字段:
ALTERTABLE<表名>DROP<字段名>
删除表:
DROPTALBE<表名>
3、数据操纵[检索+修改]
插入记录:
INSERTINTO<表名>[<字段名表>]VALUES(<表达式>)
*C型左对齐,N型右对齐,日期型格式{^2011-04-06}
更新记录:
UPDATE<表文件名>SET<字段名1>=<表达式>[WHERE<条件>]
删除记录:
DELETEFROM<表名>WHERE<表达式>
4、数据查询
基本查询:
SELECT[*(全部)|DISTINCT(清除重复记录)]<字段列表>FROM<表>
带条件查询:
SELECT[*|DISTINCT]<字段列表>FROM<表>[WHERE<条件表达式>]
*在xx之间:
between...and...
模糊查询:
<字段名>[NOT]LIKE<字符表达式>
复杂查询:
①连接查询:
SELECT[*|DISTINCT]<字段列表>FROM<表1>[,<表2>]
WHERE<条件表达式>
②连接问题:
SELECT[*|DISTINCT]FROM[<表名>]
[INNER|LEFT|RIGHT|FULL]
JOIN<数据库名>!
]<表名>ON<联结条件>…]
*内外连接
③嵌套查询:
双重查询,用in连接
④分组与计算查询:
SELECT[*|DISTINCT]<字段列表>FROM<表>
[WHERE<条件>
[GROUPBY<分类字段列表>…]
[HAVING<过滤条件>]
[ORDERBY<排序项>[ASC|DESC]
*用as改标题
5、查询去向
INTOTABLE或INTODBF<表名>:
将查询结果保存到一个永久表中
INTOCURSOR<临时表名>:
将查询结果保存到一个临时表中
INTOARRAY数组名:
将查询结果保存到一个数组中
TOFILE:
将查询结果保存到TXT文本文件
TOPRINTER:
将查询结果送打印机打印
4、查询与视图
1、查询
SQL的select语句,可通过查询设计器生成SQL代码,扩展名为.qpr(程序)
数据源:
自由表、数据表、视图
命令:
MODIFYQUERY<查询文件名>
查询去向:
临时表、表、文本文件
2、视图
定义:
虚拟逻辑表,只存放相应的数据逻辑关系,并不保存表的记录内容,可以产生级联
*比查询多了级联功能,无查询去向
数据源:
数据库表、视图
命令:
CRATEVIEW<视图名>
3、查询与视图的不同点
数据源:
视图必须是在数据库中使用数据表,而查询的数据源可以是自由表
输出去向:
视图只能输出到表中,而查询可以选择多种去向
使用方式:
视图只有所属的数据库被打开时才能使用,而查询文件可在命令窗口中执行
5、程序的建立与设计
1、建立
MODIFYCOMMAND〈程序文件名〉
2、特点
程序控制流模式(顺序、分支、循环)+面向对象可视化的结构程序模块每个皆有
3、分支结构
单项分支:
IF〈条件表达式〉*功能:
先计算条件表达式
〈命令行序列〉
ENDIF
双向分支:
IF〈条件表达式〉
〈命令行序列1〉
ELSE
〈命令行序列2〉
ENDIF
多向分支:
DOCASE
CASE〈条件表达式1〉
〈命令行序列1〉
[CASE〈条件表达式2〉
〈命令行序列2〉
……
CASE〈条件表达式N〉
〈命令行序列N〉]
[OTHERWISE(所有条件均不满足)
〈命令行序列N+1〉]
ENDCASE
4、循环结构
"当"型循环:
DOWHILE〈条件表达式〉
〈命令行序列〉
[LOOP(返回开始处,重新对条件进行判定再循环)/EXIT(退出循环)]
ENDDO
"计数"型循环:
FOR〈循环变量〉=〈循环变量初值〉TO〈循环变量终值〉
[STEP〈循环变量步长〉](每循环一次增加的步长,默认值为1)
〈命令行序列〉
[LOOP/EXIT]
ENDFOR|NEXT
"指针"型循环:
SCAN[〈范围〉][FOR〈条件表达式1〉
[WHILE〈条件表达式2〉]]
〈命令行序列〉
[LOOP/EXIT]
ENDSCAN*不需要skip,自动移动指针
5、过程+子程序(do、return)
6、简单输入输出命令
ACCEPT命令:
ACCEPT[<提示信息>]TO<内存变量>*只接受C型,不加定界符
INPUT命令:
INPUT[<提示信息>]TO<内存变量>
*CNLDT均可,要加定界符,按回车结束,自动赋值
WAIT命令:
WAIT[<提示信息>][TO<内存变量>]*只接受一个字符,不需回车和定界符
7、环境代码
Settalkoff
Setsafetyoff
Clearall
Clear
……
Settalkon
Setsafetyon
Clearall
Return
6、表单设计与应用
1、面向对象的概念
对象:
将数据和操作过程结合在一起的数据结构
一种具有属性(数据)和方法(过程和函数)的集合体
对象属性:
属性用来表示对象的状态
对象方法:
对象方法是描述对象行为的过程
对象分类:
生成容器和控件
类:
容器类和控件类
事件:
由系统预先定义而由用户或系统发出的动作,作用于对象,对象识别事件并作出相
应反应
常用事件:
①Init:
创建对象时发生的事件。
通常应用于表单的初始化事件
②Click:
鼠标左键单击对象时发生的事件。
通常应用于命令按钮(Command)、
命令按钮组(CommandGroup)的单击事件
③InteractiveChange:
以交互方式改变对象的值时发生的事件。
通常应用于选
项按钮组(OptionGroup)、组合框(Combo)、复选框(Check)
的值发生改变时发生的事件
对象的应用:
①绝对引用ThisForm:
从最高容器开始逐层向下直到某个对象为止的引用
②相对引用This:
从正在为编写事件代码的对象出发,通过逐层向高一层或
低一层直到另一对象的引用
2、建立表单
建立:
MODIFYFORM<表单名>(相当于WINDOWS应用程序的窗口)
运行:
DOFORM<表单文件名>
设置数据环境:
创建表单时需要打开的表,然后以表作为数据源与表单建立关联,
表单就可以调用数据环境中表的内容
3、管理表单
表单常用属性:
表单常用方法:
①Relase:
将表单从内存中释放,代码:
Thisform.Release
表单运行时,单击表单右上角的关闭按钮,系统会自动执行
②Refresh:
刷新表单,代码:
THISFORM.REFRESH
4、常用表单控件
标签控件:
①功能:
用于显示固定的文本信息
②常用属性:
[Caption]指定标签的显示文本,任意时间可设置修改
[AutoSize]指定是否自动调整控件大小以容纳其内容
[ForeColo]设置标题的字体颜色。
[Name]标签对象的名称,是程序中访问标签对象的标识
[Wordwrap]是否允许换行显示
命令按钮控件:
①功能:
启动某个事件代码、完成特定功能
②常用属性:
[Caption]指定标签
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VF重点总结For Aki VF 重点 总结 For