Возвращает номер текущей записи в текущей или заданной таблице.
RECNO([nWorkArea | cTableAlias]) |
Параметры
- nWorkArea
- Задает номер рабочей области для таблицы открытой в другой рабочей области. RECNO( ) вернет 0, если в заданной рабочей области нет открытой таблицы.
- cTableAlias
- Задает псевдоним таблицы, открытой в другой рабочей области.
Возвращаемое значение
Числовое
Комментарии
Текущая запись - это запись, на которой установлен указатель записи.
RECNO( ) вернет отрицательные номера записей, добавленые в буфера таблицы.
RECNO( ) вернет значение на единицу больше числа записей в таблице, если указатель записи расположен за последней записью таблицы. Если указатель записи установлен перед первой записью таблицы или в таблице нет записей, RECNO( ) вернет 1. Если в таблице нет записей, EOF( ) всегда возвращает значение "истина" (.T.).
Функция RECNO( ), выданная без аргументов nWorkArea или cTableAlias вернет текущий номер записи для таблицы, открытой в текущей рабочей области.
Если Вы безуспешно применили команду SEEK в индексированной таблице, то задав 0 в качестве nWorkArea, можно воспользоваться алгоритмом "мягкого поиска", возвращающим номер наиболее похожей записи. RECNO(0) возвращает 0, если такой похожей записи найти не удалось. Visual FoxPro сгенерирует сообщение об ошибке, если выдать GO RECNO(0), когда похожая запись не найдена.
Избегите использовать RECNO () в индексном выражении для буферизированной таблицы. Поскольку RECNO () изменяет для новых записей, когда они переданы TABLEUPDATE (), может произойти искажение индекса.
Пример
Следующий пример ищет в таблице customer
клиента по названию компании и, если название компании не найдено, использует RECNO (0), чтобы возвратить самую близкую по названию компанию.
Copy Code | |
---|---|
CLOSE DATABASES OPEN DATABASE (HOME(2) + 'data\testdata') USE customer && Opens Customer table SET ORDER TO company SEEK 'Ernst' IF FOUND( ) DISPLAY company, contact ELSE GOTO RECNO(0) CLEAR ? 'Closest matching company is ' + company ? 'Record number: ' + ALLTRIM(STR(RECNO( ))) ENDIF |
Смотреть также
Другие источники
FunctionsGO | GOTO Command
RECCOUNT( ) Function
RECSIZE( ) Function
SEEK Command
SKIP Command