11.查询定位
记录号用于标识数据记录在表文件中的物理顺序。记录指针是一个指示器,它始终指向当前表中正在操作处理的那条记录,此记录被称为当前记录。如果要对某条记录进行处理,必须移动记录指针,
使其指向该记录。在任意时刻指针只能指向唯一的一条记录。记录指针定位有绝对定位、相对定位和查询定位三种。在这里暂时只讲前二种,查询定位在讲到查询时再详细介绍。
(1). 绝对定位
【格式】[GO | GOTO] <[RECORD] <数值表达式1> [IN <数值表达式2> | IN <字符表达式>]
【功能】将记录指针绝对定位到<数值表达式1>指定的记录上。<数值表达式1>:记录的物理记录号。IN <数值表达式2> | IN <字符表达式>:指定操作表所在的工作区;若缺省,则对当前工作区表操作。工作区的概念在后面再详细介绍。
绝对定位与是否打开索引文件没有关系。
(2).相对定位【格式1】SKIP [<数值表达式1>] [IN <数值表达式2> | <字符表达式>]
【功能】记录指针从当前记录向前(或向后)移动若干个记录。
【说明】
<数值表达式1>:表示移动的记录个数。若数值表达式的值为负值,表示向前移动记录;否则,表示向后移动记录。如果缺省此项,则表示向后移动1 个记录。 如果记录指针已经移过文件的最后一个记 录,则RECNO() 函数返回的值等于文件中的记录总数加 1,EOF()函数返回逻辑真( .T. ) 值。【格式2 】GO|GOTO <|TOP |BOTTOM>
【功能】将记录指针移动到表文件的首记录或尾记录 TOP:将记录指针移动到表文件的首记录。 BOTTOM:将记录指针动到表文件的最后一条记录。相对定位与是否打开索引文件有关。如果打开有索引,记录指针按索引文件中顺序移动。否则按表文件中物理顺序移动。
【例1】绝对定位命令的用法。
USE STUD
GOTO 2
GO 3
【例2】相对定位的用法。 USE STUD
SKIP 4 && 系统主窗口显示为5
SKIP -3 && 系统主窗口显示为2
SKIP 8 && 超出了记录总数6
go top && 系统主窗口显示为1
(3).用LOCATE 命令定位
【格式1】LOCATE FOR <数值表达式>
【功能】该命令执行后将指针定位在满足条件的第一条记录上,如果没有满足条件的记录则指针指向文件结束位置。
【说明】CONTINUE 命令:LOCATE 找到第一条满足条件的记录后,可以用 CONTINUE 继续查找下一个满足条件的记录。 CONTINUE命令必须在LOCATE 命令之后使用,否则出错。在CONTINUE 命令中实际隐含了前一个LOCATE 命令中的条件。
【例】在STUD.DBF 中查找学号前四位为0111 的同学记录。
USE STUD
LOCATE FOR 学号="0111"
1.定位记录时,可以用——命令向前或向后移动若干条记录位置。
A.SKIP
B.GOTO
C.GO
D.LOCATE
[解析] 本题考查的知识点是定位记录的命令。SKIP 命令的功能是确定了当前记录位置后,向前或向后移动若干条记录位置。GO 和GOTO 命令等价,用于直接定位。LOCATE 命令是按指定条件定位记录位置。
[答案] A2.在当前表中查找班级为1 的记录,应输入命令——。
A.LOCATE FOR 班级=“l”
B.LOCATE FOR 班级=“1”CONTINUE
C.LOCATE FOR 班级= “1” NEXT l
D.UST FOR 班级=“1”
[解析] 本题考查的知识点是定位命令的使用。
LOCATE 命令的功能是按指定条件定位记录位置。该命令执行后将记录指针定位在满足条件的第一条记录上,如果没有满足条件的记录指针将指向文件结束位置。如果要使指针指向下一条满足LOCATE 条件的记录,则使用CONTINUE 命令,如果没有记录要满足条件,则指针指向文件结束位置。由于表中可能含有多个班级为1 的记录,因此需要指定CONTINUE 命令, 因此选项A 错误;选项C 和D 的格式错误。
[答案] B
3.已知当前表中有15 条记录,当前记录为第12 条记录,执行SKIP -2 命令后,当前记录变为第____条记录。
A.2
B.10
C.12
D.15
[解析] 本题考查的知识点是SKIP 命令的使用。SKIP 命令的作用是确定当前位置后,向前或向后移动若干条记录。格式是SKIP[数字],“数字”可以是正整数或负整数,如果是正数,则向后移动;如果是负数,向前移动。本题中共有15 条记录,当前位于第12 条记录。SKIP -2 命令中,整数为负2,所以向前移动2 条记录,即第10 条记录。
[答案] B
4.假设目前已打开表及索引文件,要确保记录指针定位在记录号为1的记录上, 应使用—— 命令。
A.GO TOP
B.GO l
C.LOCATE l
D.SKIP l
[解析]
本题考查的知识点是查询定位命令的使用。在visual FoxPro 中,查询定位的命令有:GOTO/GO,SKIP,LOCATE。GOT0 和GO 命令等价,用未直接定位。TOP 是表头,当不使用索引时定位到记录号为1 的记录,使用索引时是索引项排在最前面的索引对应的记录。LOCSTE 命令是按条件定位记录位置。SKIP 命令的作用是从当前记录开始向前或向后移动记录指针。本题因为使用了索引,所以选项A 错误;选项B 中的GOl 可以直接定位在记录号为1 的记录上;选项C 和D 中需要一定的条件才能确保记录定位在记录音为1 的记录上。因此正确答案为B。
[答案]B
5.打开数据库文件后,当前记录指针指向100,要使指针指向记录号为20 的记录, 应使用命令—— 。
A.LOCATE 20
B.SKIP -80
C.GO 20
D.SKIP 80
[解析] 本题考查的知识点是利用命令定位记录选项A 中的LOCATE 命令使用的格式不正确;打开了索引文件后,SKIP 命令使记录。指针按索引逻辑顺序移动,执行SMP—80 命令之后,记录音不一定是20,GO 命令按指定的物理记录号定位,但若用TOP 或BONOM 短语,则按索引的逻辑顺序定位。
[答案] C
12. 设置字段级规则打开表设计器,在“字段有效性”框的“规则”中设置。
[例题] 在表设计器的——选项卡中,可以设置记录验证规则,有效性出错信息,还可以指定记录插入更新及删除的规则。
[解析] 本题考查的知识点是表设计器的应用。表设计器中有三个选项卡,在“字段”选项卡中可以设置字段名、类型、宽度、显示格式等属性。
“索引”选项卡用来设置有关索引的属性:“表”选项卡用来设置表名,查看表文件的属性,记录有效性规则,指定记录插入、更新及删除的规则。题目中的属性设置都是在“表”选项卡中进行。
[答案] 表