vfp资料
- 格式:doc
- 大小:117.00 KB
- 文档页数:14
19.分析:本题主要考查函数调用过程中的参数传递。
调用模块程序的格式如下。
格式1:DO <文件名>︱<过程名>WITH<实参1>[,<实参2>,…]格式2:DO <文件名>︱<过程名><实参1>([,<实参2>,…])调用程序与被调用程序之间的参数传递有以下两种方式。
1) 按"引用"传递采用格式1调用模块程序时,如果实参是常量或一般形式的表达式,系统会计算出实参的值,并把它们赋给相应的形参变量,称为按值传递。
如果实参是变量,则传递的将不是变量的值,而是变量的地址。
此时形参和实参实际上是同一个变量(尽管它们的名字可能不同),在模块程序中对形参变量值的改变,同样也是对实参变量值的改变。
(2) 按"值"传递采用格式2调用模块程序时,默认情况下以按值方式传递参数。
如果实参是变量,可以利用SET UDFPARMS命令重新设置参数传递的方式。
本题中采用格式1调用模块程序,实参为变量,可知参数是采用按"引用"方式传递的。
程序模块test的作用是交换两个变量的值。
由于参数是采用按"引用"方式传递的,因此程序模块中对形参变量的改变的同时也改变了实参变量的值。
视图是操作表的一种手段,通过视图可以查询表,也可以更新表。
视图是根据表定义的,因此视图基于表,而视图可以使应用更灵活,因此它又超越表。
视图兼有"查询"和"表"的特点。
它与查询相类似的地方是,可以用来从一个或多个相关联的表中查找有用信息;与表相类似的地方是,可以用来更新表中的信息,并将更新结果永久保存在磁盘上。
视图可以删除,命令格式为:DROP VIEW view_name。
本题主要考查文本框控件常用的属性。
Value属性用于返回文本框中的内容;ControlSource 属性用于为文本框指定一个字段或内存变量;InputMask属性用于指定每个字符输入时必须遵守的规则。
查询、统计和多表操作表文件中记录的顺序通常是人们在输入数据时按输入的先后次序存储的,并以记录号表示,这个顺序只反映了存放数据的先后顺序。
但在数据处理实际应用中,由于数据库十分庞大,为了高效方便地处理数据,常常需要对记录位置进行重新整理,并按某种指定的顺序对表记录进行处理。
例如,对学生成绩表按学号为序显示输出记录,以便查找;或按总分高低为序输出记录,以便进行比较等等。
对记录位置进行重新整理通常有排序和索引两种方法。
排序是对表文件进行物理位置的整理;索引是对表文件进行逻辑位置的整理。
一、排序表文件的排序操作就是根据表的某个关键字或关键字表达式重新排列表记录的位置。
执行排序操作后将生成一个新的表文件(称为:排序文件)。
新文件的结构和数据可以与源文件完全相同,也可以只取源文件的部分字段。
新文件不改变源文件内容和记录顺序。
【命令】 SORT TO<新文件名>ON <字段名1>[/A] [/D] [/C] [,<字段名2> [/A] [/D] [/C]…] [ASCENDING|DESCENDING][<范围>][FOR<条件>|WHILE<条件>][FIELDS<字段名表>| FIELDS LIKE<通配符>|FIELDS EXCEPT<通配符>]【功能】对当前表中指定范围内、满足条件的记录按指定字段升序或降序重新排序,并将排序结果存入新文件名中。
【说明】①排序结果存入由TO <新文件名>指定的表文件中,系统默认文件扩展名为.DBF。
②在ON子句中的字段名表示排序的关键字段。
当使用一个关键字时,叫“单重排序”;使用多个关键字时,叫“多重排序”。
在多重排序中,关键字有主次之分。
主关键字是指能够唯一标识某个记录的关键字;次关键字是指标识具有某种相同属性的某些记录的关键字。
在关键字表达式中,主关键字排在前面,次关键字排在后面。
一、将参数传递到Visual FoxPro API 函数 (1)二、如何从ActiveX 控件和FLL 库返回值 (2)三、外部库的参数 (4)四、创建Visual FoxPro 动态链接库 (8)五、访问Visual FoxPro 的变量和字段 (9)六、用Visual FoxPro API 管理内存 (10)七、如何管理内存 (10)八、FoxInfo 结构 (12)一、将参数传递到Visual FoxPro API 函数Visual FoxPro API 例程常常需要特定Visual FoxPro 数据结构的参数。
下列部分提供了Visual FoxPro 数据类型和附加数据结构的列表。
有关实际的类型定义和结构定义,参考文件。
Visual FoxPro API 数据类型下列数据类型可用于Visual FoxPro API 例程。
数据类型说明EDLINE编辑窗口中打开文件中的行号。
第一行是1。
EDPOS编辑窗口中打开文件中字符的偏移位置。
该文件或备注文件中第一个字符的偏移位置是0。
FCHAN文件通道。
每个由Visual FoxPro 或使用_FCreate( ) 和_FOpen( ) 通过API 打开的文件都被指派一个FCHAN。
FPFI指向返回整数值函数的32 位指针。
ITEMID指派给菜单上单个命令的唯一标识符。
MENUID指派给菜单的唯一标识符。
MHANDLE给予每个由Visual FoxPro 或使用_AllocHand( ) 通过API 分配的内存块的唯一标识符。
可以使用_HandToPtr( ) 放弃对指针的引用。
NTI 命名表索引。
每个变量和表字段名都拥有该表中的一项。
WHANDLE窗口句柄。
指派给由Visual FoxPro 或使用_WOpen( ) 通过API 打开窗口的唯一标识符。
注意:由于FAR 指针不适合于32 位编译器,中的#define 语句将FAR、_far 和__far 重新定义为null 值。
二级公共基础知识辅导讲义本教材由睿创教育公司组织编制,适用于强化班同学使用。
为培训班内部教材。
第一章数据结构与算法1*2、算法的基本特征(1)可行性。
针对实际问题而设计的算法,执行后能够得到满意的结果。
(2)确定性。
每一条指令的含义明确,无二义性。
并且在任何条件下,算法只有唯一的一条执行路径,即相同的输入只能得出相同的输出。
(3)有穷性。
算法必须在有限的时间内完成。
有两重含义,一是算法中的操作步骤为有限个,二是每个步骤都能在有限时间内完成。
(4)拥有足够的情报。
算法中各种运算总是要施加到各个运算对象上,而这些运算对象又可能具有某种初始状态,这就是算法执行的起点或依据。
因此,一个算法执行的结果总是与输入的初始数据有关,不同的输入将会有不同的结果输出。
当输入不够或输入错误时,算法将无法执行或执行有错。
一般说来,当算法拥有足够的情报时,此算法才是有效的;而当提供的情报不够时,算法可能无效。
*:综上所述,所谓算法,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。
3、算法复杂度主要包括时间复杂度和空间复杂度。
(1)算法时间复杂度是指执行算法所需要的计算工作量,可以用执行算法的过程中所需基本运算的执行次数来度量。
(2)算法空间复杂度是指执行这个算法所需要的内存空间。
1、数据结构是指相互有关联的数据元素的集合。
2(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构。
数据的逻辑结构包含:1)表示数据元素的信息;2)表示各数据元素之间的前后件关系。
(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构。
数据的存储结构有顺序、链接、索引等。
1)顺序存储。
它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。
由此得到的存储表示称为顺序存储结构。
2)链接存储。
它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。
第一次课数据表结构相关知识一、数据库,建索引、表联系(3、7)数据库(.DBC)表(.DBF) 项目(.PJX)主索引:不能有重复值,字段前有一把钥匙1)索引侯选索引:不能有重复值。
唯一索引:不能有重复值或空值。
普通索引:一张表可以有多个普通索引,并可以有重复值。
注:一张表只有一个主索引,但可有多个侯选索引。
父表:主索引所在的表。
子表:普通索引所在的表。
重点:主索引与普通索引之间的关系2)通过索引字段建立联系:①从主索引到普通索引(即有钥匙的字段拖到没有有钥匙的字段)②从侯选索引到普通索引3)表中字段值常见类型:二、增加有效性规则(15)注意:所有的标点符号都是在英文状态下的。
1、对表中字段的有效性规则修改规则:如果字段名为字符型,字段名不加双引号,则为它的值加双引号信息:全默认字符型加双引号默认值:如果字段名为字符型则它值加双引号(仅仅写值)2.Null:空值,如设置默认值为NULL,首先必须允许它的值为空。
三、创建表结构(22)①字段名不区分大小写,字段值要区分大小写。
②追加新记录,是一条记录,追加记录则是表到表。
练习:3, 4(1-2), 6, 7, 8, 9, 11, 15,17, 18, 22,27, 30, 37第二次课一、给表增加字段、替换字段(5)注意:增加字段只能在最末尾的新字段处增加字段替换字段值:打开表记录(数据库表双击即可,自由表:use 表名BROWSE),点”表”→“替换字段” (其后要一定要依题目要求做.)二、参照完整性(14)1.右击联系那条线,点”编辑参照完整性”,若不能修改,则点”数据库”→”清理数据库”。
2.级连:父表的记录值发生改变时,子表的记录值也发生改变。
注意:建立参照完整性之前,首先必须建立表与表之间的联系。
三、记录删除(14)逻辑删除(只是做个黑色的标志,并未从电脑上删除)物理删除(只有先逻辑删除,才能物理删除.)四、移去表和永久删除(19)区别:移去表是将数据库中的表移去,使其成为自由表。
20XX年《VFP程序设计》课程基本概念复习大纲数据库概述数据库系统基本概念:数据库、数据库管理系统、数据库系统的关系数据模型:层次模型、网状模型、关系模型概念简述。
关系数据库:关系数据库、基本关系运算概念简述。
Visual FoxPro初步知识VFP常用文件类型:.dbf 、.fpt、.dbc、.prg、.scx、.mpr、.mux的含义。
Visual FoxPro操作方式菜单方式、命令方式、程序方式数据类型与基本运算数据类型字符型、数值型、日期型、逻辑型、备注型、通用性的作用。
备注文件的作用和特点。
常量字符型、数值型、日期型、逻辑型常量的表示方法。
变量内存变量、字段变量的三个基本要素:名、类型和值。
内存变量的赋值与显示;字段变量的显示。
相关命令:store… to … ;…=… ;? …运算符与表达式算术表达式运算符:表3-2(%运算除外)字符表达式运算符:**、*、/、+、-。
日期表达式运算符:<日期> +/-<天数>;<日期>-<日期>关系表达式运算符:逻辑表达运算符:同类运算符之间和不同类运算符之间的运算优先级。
函数(1) ABS()、INT()、MAX()、MIN()、ROUND()、SQRT()(2) ALLTRIM()、AT()、LEN()、SPACE()、SUBSTR()、UPPER()、LOWER()(3) DATE()、DATETIME()、DAY()、MOUTH()、YEAR()(4) EOF()、FOUND()注意函数嵌套练习。
表的操作建立表表结构、表数据(包括备注字段、通用字段)相关的基本概念。
表的打开与关闭相关命令:USE … ;USE ;CLOSE ALL。
定位记录记录指针,逻辑删除与物理删除的概念。
相关命令:记录定位:GO … ;SKIP;LOCATE FOR ….索引和数据库操作索引的概念:主索引、普通索引的概念。
试卷编号:327所属语言:C++试卷方案:VFP第三章测验(第一部分)试卷总分:100分共有题型:2种一、填空共17题(共计56分)第1题(4.0分)题号:803若希望设置GYBH字段(公园编号)的格式为:删除输入的前导空格和结尾空格,需在GYBH字段的格式中输入:【T】.第2题(4.0分)题号:801为XS表设置删除触发器:JG字段值为“江苏”的记录不允许删除,则需要在删除触发器中填入:jg 【!=】"江苏"第3题(4.0分)题号:786在命令窗口或程序中,可以使用USE命令打开一个表.在该命令中,【ALIAS】子句用于定义表的别名.第4题(4.0分)题号:793数据库表的触发器(Trigger)是在对表的记录进行操作时被触发的检验规则.在VFP中,触发器分为3种类型,即更新触发器、删除触发器和【插入】触发器.第5题(4.0分)题号:847利用VALIDATE DATABASE命令检查数据库的有效性和更新数据库与表之间的链接。
例如,打开数据库后,可以使用命令VALIDATE DATABASE 【RECOVER】来检查数据库的有效性并更新链接(注:如没有填写的关键字,则仅检查数据库的有效性)。
(2010春笔试)第6题(4.0分)题号:849与自由表相比,数据库表可以设置许多字段属性和表属性,以扩展表的功能。
例如,某字符型字段的【格式】属性设置为"T!",则在输入和显示时其前导空格自动地被删除,且所有字母均转换为大写字母。
(2010春笔试)第7题(4.0分)题号:846存储过程是储存在数据库文件中的程序代码,并且在数据库打开时被加载到内存中。
存储过程通常由一系列用户自定义函数,或在创建表与表之间【参照完整性规则】时系统自动地创建的函数组成。
(2010春笔试)第8题(4.0分)题号:850所谓工作区,是指用以标识一个打开的表所在的内存工作区域。
每个工作区有一个编号(称为工作区号),其编号范围为1~32767。
新建数据库的方法:1、文件菜单--新建--数据库--新建文件--找到保存位置--输入库名--保存; 2、CREATE DATABASE; 关闭数据库的方法:close database(当前) 打开数据库的方法:1、文件菜单--打开--找到位置--文件类型选择数据库--选择库名--打开; 2、open database; modify database(显示数据库设计器) 删除数据库的方法:先关闭数据库--DELETE DATABASE 路径+库名; eg:delete data d:\09年四月一班\学校管理 建立数据库表:1、文件菜单--新建--表--新建文件--找到保存位置--输入表名--保存; 2、CREAT 表的操作: 自由表和数据库表; 1、自由表:不在数据库中的表; 2、数据库表:必须存在于数据库中; 3、自由表与数据库的区别:1、自由表 字段名的宽度最多为10个字符,无主索引,无有效性规则框; 2、数据库表 字段名的宽度最多为128个字符,有主索引,有有效性规则框; 3、自由表与数据库表的转换:(默认目录设置在先) (1)数据库到自由表1、打开数据库--右击表--删除--移去--是; 2、REMOVE TABLE 表名 (2)自由表到数据库表1、右击数据库设计器--添加--找到表--确定 2、ADD TABLE 表名; 表的基本操作:1、create;建立表; 2、USE 打开表/关闭表; 3、浏览表:BROWS/显示--浏览; 修改表的结构: 打开表设计器窗口 (1)打开表后--显示菜单--表设计器; (2)MODIFY STRUCTURE; null:空值(暂时无法确定的值)不等于0 空值的设置:在建表时(表设计器窗口-选择要设置空值字段--将NULL按钮选中打上对号--默认值对话框中输入.null.) 调整日期的显示格式: 将日期的格式设为年月日: set date to ymd 将日期的格式设为月日年: set date to mdy 设置年份的位数: set century on(4位) set century off(2位) 设置日期的分隔符: set mark to "-"或"."或"/" 表的记录修改: 1、增加记录:显示--追加方式; CTRL+Y; APPEND BLANK/APPEND 2、删除记录:(逻辑删除和物理删除) 1、逻辑删除:即给记录添加删除标记;(可以恢复) (1)在记录号处单击使之颜色变为黑色; (2)DELETE ALL(全部逻辑删除); RECALL ALL(全部恢复); (3)DELETE FOR 表达式 eg:DELETE FOR 仓库号="WH8"(字符型数据所以要加定界符,字符型的定界符"" '' []) 2、物理删除:彻底的删除;(不能恢复) (1)PACK:删除带有删除标记的记录; (2)ZAP:清空表中的记录; 插入记录:(1)INSERT :在当前记录之后插入; (2)INSERT BEFORE:在当前记录之前插入; 修改记录:1、REPLACE 要修改的字段 with 表达式 ALL; eg:repla 面积 with 面积+100 all 2、REPLACE 要修改的字段 with 表达式 FOR 条件; eg:repla 数学 with 数学-10 for 姓名="CC" 3、REPLA 要替换的字段 with 值 for 条件 eg:repla 姓名 with "优秀生" for 总分>150 一、数据的完整性:确保数据正确的特性; 主索引(primary key) 侯选索引(candidate) 唯一索引(unique) 用命令建立索引(不能主索引)INDEX ON 索引表达式 tag 索引名 索引的英文名称 eg:index on 姓名 tag 姓名 candidate 升序 ascending (asc) 降序 descending (desc) eg:index on 姓名 tag 姓名 desc candidate(以姓名降序建立侯选索引); 用命令删除索引:DELETE TAG ALL 域完整性:控制用户输入数据的范围(有效性规则) 规则框:用于输入逻辑表达式; eg:性别="男" or 性别="女" 信息框:用于显示出错信息;字节符表达式; eg:"输入的信息不对" 默认值:与字段类型相同; eg:"女" 参照完整性:通过修改一张表,将相应的修改结果反映到另一张上; 父表:建立主索引的表; 子表:建立普通索引的表; 父子关系; 编辑参照完整性的步骤:1、打开同一个数据库有联接的两张表观察; 2、为父表建立主索引,为子表建立普通过引 3、通过索引建立永久性的联系; 4、清理数据库 pack database 目的是物理删除带有删除标记的记录; 5、双击连接线--编辑参照完整性; 编辑参照完整性的步骤:1、打开同一个数据库有联接的两张表观察; 2、为父表建立主索引,为子表建立普通过引 3、通过索引建立永久性的联系; 4、清理数据库 pack database 目的是物理删除带有删除标记的记录; 5、双击连接线--编辑参照完整性; 规则:更新规则:更改; 级联:改父表时子表随之修改; 限制:只能在父表中改子表中没有的相关记录; 忽略:不做限制; 删除规则:(逻辑删除) 级联:删除父表中的记录时,子表中的相关记录随之删除; 限制:只能在父表中删除子表中没有的相关记录; 忽略:不做限制; 插入规则: 限制:只能在子表中插入父表中有的相关记录; 忽略:不做限制; 补充第三章 物理排序: 1、打开要被排的表; 2、sort to 新表名 on 排序字段名 升降序; 3、打开表 4、浏览表; eg: use 仓库表 sort to aa on 面积 ascending use aa brows 临时联系:记录指针的同步移动; 工作区:当前工作的区域; 在VFP中共有32767个工作区,最大工作区号:32767 最小工作区号1 空闲工区号 0 命令格式(例如) use 仓库表 in 1 order 仓库号 use 职工表 in 2 order 仓库号 set relation to 仓库号 into 职工表 项目文件(pjx):包含了VFP中的所有文件,并且提供管理的平台; 建立:CREATE PROJECT; 指针的移动: goto n:指针移到第N条; skip :向下移动; SKIP -1:向上移动; locate for 表达式:光标条件移动; go top:表头; go bottom:表尾; 注:_screen.fontsize=15将主窗口中字号调至15号; 第二章第一节:常量、变量、表达式; 1、常量:一个固定不变的量; 数值型常量:0-9个数字加正负符号加小数点构成; 2、y货币型常量:$ ¥ eg:$588.00 3、字符型常量:必须定界符("" [] '') eg "abc" "" " " ['"dkdkkd"'] 4、日期型常量:定界符{^年月日} 严格的日期格式:年月日 4 传统的日期格式:月日年 2 set date to ymd set date to mdy set cent on set cent off set mark to "-" 5、日期时间常量:定界符号{^年-月-日,时-分-秒} 6、逻辑型常量:.t.和.f.定界符是.. 变量:其值可以不断发生改变的量; 内存变量:简单的变量; eg:a=10 a为变量名,=赋值符号,10为值;意思是将10赋给变量a; STORE 值 to 变量名列表 eg:store 100 to a,b,c,d 字段变量:表中的字段名; 注VFP中的输出语句是 ?:在不同行输出; ??:在同行输出; 显示内存变量:LIST MEMORY LIKE A 清除内存变量:clear memory/release all; 数组:内存开辟的一片连续的存储区域; 定义数组: DIMENSION 数组名(元素) DECLARE 数组名(元素) eg:dimension aa(5) 一维数组; eg:dimension bb(2,3)二级数组; 赋值数组: 数组名(元素)=值 eg:aa(1)=100 访问数组: ?数组名(元素) eg:aa(1) 数组的使用: 数组中的记录复制表中:1、定义数组; 2、赋值数组; 3、打开表; 4、追加空记录; 5、GATHER FROM 数组名; 6、浏览表; eg:declare aa(3) aa(1)="WH6" aa(2)="汉阴" aa(3)=270 use 仓库表 append blank gather from aa brows 表中的数据复制到数组中:1、打开表 2、SCATTER TO 数组名; 3、访问数组; eg:use 职工表 scatter to aa ?aa(1) 表达式:由常量 变量 函数通过特定的运算符连接起来的式子; 数值型表达式:() **^ */% + - 字符型表达式:+ - +:连接两个字符串; -:连接两上字符串,并且将前字符串的尾总空格移到新串的尾部; 表达式:数值表达式: 字符表达式: 日期表达式:日期型; 注:日期与日期不能相加; 天数不能减日期; 日期时间不能加日期时间; 关系表达式:> >= < <= = == (!=<>#) $ 返回的结果为逻辑型; 设置字符串的比较类型: 工具菜单--选项--数据--排序依据--拼音;