R E C N O 函 数 - 图1R E C N O 函 数 - 图2R E C N O 函 数

R E C N O 函 数 - 图3返回当前表或指定表中的当前记录号

语 法

RECNO([ n W orkArea | cTableAlia s])

返 值 类 型

数值型

参 数 描 述

n W o rkArea

R E C N O 函 数 - 图4R E C N O 函 数 - 图5指 定 表 所 在 的 工 作 区 编 号 如 果 在 指 定 的 工 作 区 中 没 有 打 开 的 表 RECNO

R E C N O 函 数 - 图6R E C N O 函 数 - 图7R E C N O 函 数 - 图8函 数 返 回 0

cTableAlias

R E C N O 函 数 - 图9指 定 表 别 名

说 明

R E C N O 函 数 - 图10当前记录就是记录指针所指的记录

R E C N O 函 数 - 图11R E C N O 函 数 - 图12R E C N O 函 数 - 图13R E C N O 函 数 - 图14对于在表缓冲区中追加的记录 RECNO 返回负记录编号

R E C N O 函 数 - 图15R E C N O 函 数 - 图16R E C N O 函 数 - 图17R E C N O 函 数 - 图18R E C N O 函 数 - 图19R E C N O 函 数 - 图20R E C N O 函 数 - 图21R E C N O 函 数 - 图22R E C N O 函 数 - 图23R E C N O 函 数 - 图24R E C N O 函 数 - 图25R E C N O 函 数 - 图26R E C N O 函 数 - 图27R E C N O 函 数 - 图28如果记录指针所指的位置超出了表中的最后一个记录 那么 RECNO 函数返回一个比表中记录数目大 1 的数值 如果记录指针所指的位置在表中第一个记录之前或者表中没有记录 那 么 RECNO 函数返回 1 如果表中没有记录 EOF 函数总是返回 真 (.T.)

R E C N O 函 数 - 图29R E C N O 函 数 - 图30R E C N O 函 数 - 图31R E C N O 函 数 - 图32执行不带可选参数 nWorkAreacTableAlias 的 RECNO 函数 将返回当前所选工作区中表的当前记录号

R E C N O 函 数 - 图33R E C N O 函 数 - 图34如果在一个经过索引的表中发出 SEEK 命令失败 那么可以将 nWorkArea 指定为 0

R E C N O 函 数 - 图35R E C N O 函 数 - 图36R E C N O 函 数 - 图37R E C N O 函 数 - 图38R E C N O 函 数 - 图39R E C N O 函 数 - 图40R E C N O 函 数 - 图41使用 软寻找 (softseek) 方法来返回最接近匹配记录的记录号 如果不能找到接近的匹配记录 RECNO(0) 函数返回 0 如果没有找到接近的匹配记录而发出 GO RECNO(0) 命令 那么 Visual FoxPro 将产生错误信息

示 例

R E C N O 函 数 - 图42R E C N O 函 数 - 图43R E C N O 函 数 - 图44下面的 example 在 customer 表中搜索一个公司的名称 如果没有找到该公司的名称就使用 RECNO(0) 返回最接近匹配的公司名称

CLOSE DATABASES

OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && 打开 customer 表

SET ORDER TO company

SEEK 'Ernst' IF FOUND( )

R E C N O 函 数 - 图45R E C N O 函 数 - 图46DISPLAY company, contact ELSE

GOTO R E C N O 函 数 - 图47 0 R E C N O 函 数 - 图48

CLEAR

R E C N O 函 数 - 图49R E C N O 函 数 - 图50R E C N O 函 数 - 图51? 'Closest matching company is ' + company

? 'Record number: ' + ALLT RIM(STR( R E C N O 函 数 - 图52 )) ENDIF

请 参 阅

GO | GOTO, R E C C O U N T ( ) , RECSIZE( ) , SEEK , SKIP