上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.6 记录指针的定位
表中的每个记录都有一个编号,称为记录号。对于打开的表,会被分配一个记录指针,记录指针指向的记录称为当前记录。定位记录就是移动记录指针,使指针指向符合条件的记录的过程。使用记录号测试函数RECNO()可以获得当前记录的记录号。
表文件有两个特殊的位置:文件头(表起始标记)和文件尾(表结束标记)。文件头在表的第一条记录之前,当记录指针指向文件头时,BOF()函数的值为.T.;文件尾在表的最后一条记录之后,当记录指针指向文件尾时,EOF()函数的值为.T.,如图2.18所示。
图2.18 记录指针的定位
1.绝对定位
将记录指针直接定位到某条记录,称为记录的绝对定位。
(1)使用鼠标在浏览方式下直接定位。在如图2.9所示的记录的浏览窗口,记录最左边的小方框里,黑色向右的三角所指的记录就是当前记录,用户可以通过单击鼠标的方式直接定位记录。
(2)命令方式绝对定位。
【命令格式】 GO/GOTO [TOP/BOTTOM]/<n>]
【功能】 将记录指针指向定位记录。
【例2.21】 GO 命令定位示例。
USE teacher ?RECNO() && 刚打开的表,指针指向第1条记录 GO bottom && 定位到末记录 ?RECNO() ?EOF() GO 3 ?RECNO() GO top && 定位到首记录 ?RECNO()
显示结果如下:
2.相对定位
【命令格式】 SKIP[+//] [<数值表达式>]
【功能】 从当前记录开始向前或向后移动记录指针。
【说明】
(1)SKIP:向表尾方向移动1条记录。
(2)SKIP+n:向表尾方向移动n条记录。
(3)SKIPSn:向表头方向移动n条记录。
【例2.22】 SKIP命令定位记录示例。
USE teacher ?RECNO(),BOF() SKIP -1 &&指向文件头 ?RECNO(),BOF() GO bottom ?RECNO(),EOF() SKIP &&指向文件尾 ?RECNO(),EOF()
显示结果如下:
另外也可使用菜单方式定位或移动记录指针。在记录的浏览、编辑、追加等方式下,打开“表”菜单,选择“转到记录”命令,选择如图2.19所示的某个命令。
图2.19 “转到记录”菜单及子菜单