记录的定位与查询

上传人:mg****85 文档编号:49494475 上传时间:2018-07-29 格式:PPT 页数:18 大小:75.50KB
返回 下载 相关 举报
记录的定位与查询_第1页
第1页 / 共18页
记录的定位与查询_第2页
第2页 / 共18页
记录的定位与查询_第3页
第3页 / 共18页
记录的定位与查询_第4页
第4页 / 共18页
记录的定位与查询_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《记录的定位与查询》由会员分享,可在线阅读,更多相关《记录的定位与查询(18页珍藏版)》请在金锄头文库上搜索。

1、第7章 记录的定位与查询7.1 记录的定位概念无条件记录定位:goto skip有条件记录定位:直接(顺序)定位和索引(快速 )定位定位命令仅仅是对记录指针进行定位的一种 操作,它并不能显示定位的记录内容。如要显示 ,则需要使用并且只能使用Display命令。 7.2 顺序(直接)定位所谓顺序定位是指在表中从第一条记录开始, 按照顺序搜索表,把记录指针定位在满足条件的第 一条记录上。顺序定位适合于复杂条件或小型表的定位。命令格式: 1)找首条:Locate For 范围2)找后续(继续查询):Continue &按照Locate指定的条件继续定位下一条记录参数说明: Locate是直接在表文件

2、(不需要对表进行排序 或索引)中,按照范围、For从表 文件的头至尾顺序来定位符合条件的第一条记录 。如果存在多条满足For的记录, 可以使用Continue命令继续定位下一条记录。 Continue命令的作用是从当前相匹配记录的下 一条记录位置开始,继续执行由Locate命令指定 的范围、满足条件的下一条记录的定位操作。 Continue只能和Locate配套使用,不能单独使用 。 如果Locate命令定位成功,即在当前表中找到了 一条与条件相匹配的记录,就将记录指针指向该条记 录。这时,Found()函数返回逻辑真.T.,Eof()函数返 回逻辑假.F.。Recno()函数返回相匹配记录的

3、记录号 。如果Locate命令定位不成功,即在当前表中没有 找到任何一条与条件相匹配的记录,则Found()函数 返回逻辑假.F.,Eof()函数返回逻辑真.T,Recno()函 数返回Recc()+1的值。 Locate 命令支持模糊查询,也就是说,只要知道 查询数据的部分内容时(主要指字符型数据)就可以 进行查询,实现模糊查询要用到包含函数$。例:在学生挡案表.Dbf表中,定位显示班级为“99212”并 且籍贯为“浙江”的记录。Use 学生挡案表Locate For 班级=”99212”.And.籍贯=”浙江”Display &显示第一条满足条件的记录? Found() &返回逻辑真.T.

4、? Eof() &返回逻辑假.FContinueDisplay &无记录显示? Found() &返回逻辑假.F.? Eof() &返回逻辑真.T Use例:在学生挡案表.Dbf表中,定位计算机系99级或98级并且 年龄小于20的学生。注:学号的第一、二位表示年级,第三 位为“2”的表示计算机系。Use 学生挡案表Locate For (Subs(学号,1,3)=”992” .Or. Subs(学号 ,1,3)=”982”).And.年龄 格式二:Find 1.FIND命令 (1) 命令方式命令格式:FIND / 功能:在打开的以查询内容所在字段为索引关键字 的索引文件中,快速查找关键字段等于

5、 或的第一个记录。说明: 执行命令前,必须首先建立以查询内容所在字 段或表达式为索引关键字的索引文件,若已存在 则打开该索引文件,且将其设置为主索引。 FIND命令通常适用于字符数据类型及数值型, 字符串中的字符可以不用定界符。 可以用内存变量代替字符串作为查找的数据, 但必须用宏代换函数(&)。 如果查找成功,则把记录指针指向逻辑顺序中 第一条符合条件的记录,且FOUND()函数的值为 .T.,否则,记录指针指向文件未尾,FOUND() 函数的值为.F.。例题: 例题1:在学生档案中,用FIND命令查找学号为 “9832101”的学生。USE 学生档案表index on 学号 to xhFI

6、ND 9832101 DISPLAY例题2.在学生档案表.DBF数据表文件中,以变量 的形式,用FIND命令查找姓名为 “刘丽红”的学 生(以姓名为索引关键字的索引文件XM.IDX已建立 )。2.SEEK命令FIND命令不能对日期型和逻辑型的数据进行查 找,在某些情况下使用起来不方便,为此,系统 中又提供了功能更强的SEEK命令。格式:SEEK 功能:在打开的以查询内容所在字段为索引关键 字的索引文件中,快速查找关键字段等于值的第一个记录。其中: (1)SEEK命令适用于一切数据类型(C、N、D、L) ,表达式可以是常量、变量和函数所组成,但必 须与索引表达式一致。表达式为C、D、L(.T.,

7、 .F.)常量时,必须使用相应的定界符,如:“ ”、 。 (2)表达式为变量时,要直接使用,不需要用宏 代换函数。(3)如果查找成功,则把记录指针指向逻辑顺序 中第一条符合条件的记录,且FOUND()函数的值 为.T.,否则,记录指针指向文件未尾,FOUND( )函数的值为.F.。例题3:在学生档案XSDA.DBF数据表文件中,用 SEEK命令查找学号为“9921201”的学生(以学号为索引 关键字的索引文件XH.IDX已建立)。USE xsda INDEX xh &打开以学号为索引关键字的索引文件XH.IDXSEEK “9921201” &必须使用定界符DISPLAY例题4.在学生档案表.D

8、BF数据表文件中,以变量 的形式,用SEEK命令查找姓名为“刘丽红”的学 生(以姓名为索引关键字的索引文件XM.IDX已建立 )。USE 学生档案表 INDEX xmSTORE “刘丽红” TO a1SEEK a1 &不需使用宏代换函数DISPLAY例题5.在学生档案XSDA.DBF数据表文件中,以常 量的方式查找班级为“98321”、籍贯为“浙江” 的学生。小结: (1)LOCATE和SEEK、FIND都是用于在数据表文件中查询定位记录指针,即把记录指针定位在满足条件的记录上。特别强调:仅仅是定位记录指针。如要显示定位的 (1) 记录内容,则需要用DISPLAY命令。 (2) LOCATE和

9、SEEK、FIND的不同之处: LOCATE是顺序查询定位,可以直接利用原数据表进行定位操作,而SEEK、FIND命令是索引查询定位,必须首先对原数据表按定位数据所在字段或表达式进行索引,建立相应的索引文件或打开相应的索引文件、索引标识的前提下才能进行定位操作。 LOCATE和CONTINUE相配合可以连续查询定位多条记录,而SEEK、FIND只能查询定位单条记录。 LOCATE是用条件表达式的形式来定位,而SEEK、FIND是用常量、变量或变量组成的表达式的形式来定位 。(3) SEEK和FIND的不同之处:SEEK命令适用于一切数据类型(C、N、D、L), 但若为C、D、L常量时,必须使用相应的定界符 ,如:“ ”、 、 。表达式为变量时, 要直接使用,不需要用宏代换函数。 FIND命令通常适用于字符数据类型,不可用 于日期型和逻辑型数据类型。表达式为字符常量 时,不须使用相应的定界符。表达式为变量时, 不可直接使用,必须使用宏代换函数。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号