visualfoxpro60程序设计教程电子教案第4章(编辑修改稿)内容摘要:
足指定逻辑表达式的第一个记录。 参数描述: [范围 ]: 指定要定位的记录范围。 只有在范围内的记录才被定位。 LOCATE命令的默认范围是 ALL。 [FOR 条件 ]: LOCATE命令按顺序搜索当前表以找到满足逻辑表达式的第一个记录。 若逻辑表达式是可优化的表达式,则Rushmore优化由 LOCATE FOR 创建的查询。 为了获得最佳执行效果,可在 FOR子句中使用可优化的表达式。 2020/6/28 Visual FoxPro 23 [WHILE 条件 ]: 指定一个条件,只要逻辑表达式计算值为真,就继续查找记录。 说明: (1)被搜索的表不必有索引。 (2)若 LOCATE发现一个满足条件的记录,就将记录指针定位在该记录上。 可以使用 RECNO()返回该记录的记录号,同时FOUND()函数返回“真”, EOF()函数返回“假”。 如果没有找到,则将记录指针指向范围的最后一个记录,同时将FOUND()函数值置为“假”,屏幕上显示“已到定位范围末尾”。 (3)如果执行 SET EXCAT OFF命令后,再用 LOCATE命令查找字符型数据时,不要求字符型数据精确匹配。 (4)该命令只能查找第一条满足条件的记录。 若表中有多条满足条件的记录,当已经找到一条满足条件的记录后,还想继续查找后面满足条件的记录时,可以使用 CONTINUE 命令继续向后查找满足条件的记录。 2020/6/28 Visual FoxPro 24 CONTINUE命令 格式: CONTINUE 功能: 它使 LOCATE命令从当前记录开始继续查找下一条满足条件的记录。 说明: CONTINUE是用在 LOCATE之后继续查找满足同一条件的记录的命令 ,它继续 LOCATE的操作。 CONTINUE命令移动记录指针到下一个与 条件 逻辑表达式相匹配的记录上。 CONTINUE命令能被重复执行直到记录指针到表的结尾或到指定范围的尾部。 如果 CONTINUE命令成功地查找到了一条记录, RECNO()函数将返回该记录的记录号,并且 FOUND()函数返回逻辑“真”值和 EOF()返回逻辑“假”值。 如果 CONTINUE命令没有查找到满足条件的记录, RECNO()函数返回在 table plus one中的记录数 , FOUND()函数返回逻辑“假”值,并且 EOF()函数返回逻辑“真”值。 返 回 2020/6/28 Visual FoxPro 25 快速查询命令 用 LOCATE命令查询的优点是不论表中的记录是否有序都能进行查找,而其主要的缺点是查找速度慢。 当表中的记录较多,并且要查询的记录又在表的底部时,问题尤为突出。 为了解决这一问题, VFP提供了二条快速查询命令: FIND和 SEEK。 FIND命令: 格式: FIND 字符型常量 /数值型常量 功能: 它在已经建立索引并且表文件和索引文件均已打开的表中查找索引关键值与指定的字符串或数值型常量相匹配的第一条记录。 如果找到,则把记录指针指向该记录,并且将FOUND()函数的值置为“真”;如果没有找到与其相符的记录,则将记录指针指向表的末尾,且将 FOUND()函数的值置为“假”,将 EOF()函数的值置为“真”。 说明: ⑴ FIND命令是在索引文件中查询 , 找到后根据记录号从表文 2020/6/28 Visual FoxPro 26 件中读出相应的记录。 因为一个表在同一时刻只能有一个索引文件或一个索引标记为主控索引,因此,利用 FIND命令来查找记录时,只能查找主控索引字段的值。 ⑵ 查询的值可以是字符串 , 也可以是数值。 通常字符串可以不用定界符括起来 , 但是当字符是以空格开始时 , 则必须用定界符括起来;如果要查找的字符串是以定界符开头时 , 就必须用不同的定界符将其括起来。 ⑶ 查询的值如果是字符串 , 它可以是索引关键表达式值的全部或前几个字符 , 但不能是中间的或是后面的字符。 ⑷ 查找字符串时 , 只要索引表达式 ( 建立索引文件时使用的索引表达式 ) 是字符型的 , 就可以使用 FIND命令查找 , 并要求组成索引表达式的字段必须是字符型的。 ⑸ 执行 SET EXACT命令后 , 再用 FIND命令查找字符串时 , 字符串可以是索引表达式值的全部或是从首字符开始的一个子串。 如果执行了 SET EXACT ON命令后再用 FIND命令来查找字符串 , 则字符串只能和索引表达式的值精确匹配 , 即只能是 2020/6/28 Visual FoxPro 27 索引表达式的值的全部。 ⑹ 建立索引文件时 , 索引表达式可以是多个字段组成的表达式 ,若字段之间用 “ +”连接 , 用 FIND命令查询时 , 查询内容应当是包含空格符在内的索引表达式值的全部或是从首字符开始的一个子串 , 究竞是用哪一种 , 这取决于 SET EXACT命令的设置;若字段之间用 “ ”号连接 , 用 FIND查找时 , 查询内容应当不包含空格符在内的索引表达式值的全部或是从首字符开始的一个子串。 ⑺ FIND命令只能使记录指针定位于第一条符合条件的记录,而CONTINUE命令又不能和 FIND命令一起配合使用,当符合条件的记录不止一条时,可用 FIND先查到满足条件的第一条记录,因为记录是根据索引关键表达式排序了的,因此符合条件的记录是在一起的,因此可用 SKIP命令配合 DISP命令查找,直到发现某条记录不满足条件时为止,此记录以后的记录肯定不符合条件。 2020/6/28 Visual FoxPro 28 SEEK命令: 格式: SEEK 表达式 [ORDER 索引号 /单索引文件名 / [TAG] 索引标记 [OF 复合索引文件名 ] [ASCENDING/ DESCENDING]] 功能: 在打开的索引文件中快速查找与 表达式 相匹配的第 1 条记录。 参数描述: 表达式 : 指定 SEEK搜索的关键字。 表达式 可以是空字符串。 ORDER 索引号 /单索引文件名 /[TAG] 索引标记 [OF 复合索引文件名 ] [ASCENDING/DESCENDING]: 指定 表达式是以哪一个索引或索引标记为主控索引。 其使用方法同设置主控索引。 说明: 当省略所有的可选项时 , SEEK命令与 FIND命令的功能基本 2020/6/28 Visual FoxPro 29 相同,但 SEEK命令的功能更强, SEEK命令不仅可以查找字符串和常数,它还可以查找字符型、数值型、日期型或逻辑型表达式的值。 用 SEEK命令查找字符串常量时,字符串常量必须放在定界符中。 SEEK命令中的表达式必须和索引表达式的类型相同。 顺序查询和快速查询比较 L OC ATE F I ND S EEK 查询内容 可以是字符型、数值型、日期型、逻辑型表达式,还可以查找备注型字段 可以是字符型、数值型、日期型表达式或逻辑型字段 字符串常量或常数 对表的要求 无论是否建立了索引文件均可方便地查询 必须建立并打开索引文件,只能在主控索引文件中查询 同左 命令特点 可使用 范围 子句限定查询范围,可与 C ONT I NUE 命令配合使用,找出表中全部符合条件的记录 在整个表中查询,只能找出满足条件的第一条记录 同左 查询速度 慢 快 快 返 回 2020/6/28 Visual FoxPro 30 对话查询 格式: GETEXPR [字符表达式 1] TO 内存变量名 [TYPE 字符表达式 2[。 字符型错误信息文本 ]] [DEFAULT 字符表达式 3] 功能: 通过命令 GETEXPR启动表达式生成器对话框,从中可以创建表达式,并把表达式存入内存变量或数组元素中,然后通过 LOCATE命令宏代换进行查询,此命令常用于程序中。 参数描述: [字符表达式 1]: 指定在“表达式生成器”中显示的标题,该标题可提示生成何种类型的表达式。 TO 内存变量名 : 指定存储表达式的内存变量或数组元素。 如果此内存变量不存在, VFP将创建该变量。 该命令不创建数组元素。 如果按 Esc键或选择 【 取消 】 按钮退出“表达式生成器”,将在内存变量或数组元素中存储空字符串。 如果已经用DEF。visualfoxpro60程序设计教程电子教案第4章(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。