Возвращает номер следующей модифицированной записи в буферизованном курсоре.
Синтаксис:
GETNEXTMODIFIED(nRecordNumber [, cTableAlias | nWorkArea])
Параметры"
nRecordNumber
Задает номер записи, после которого функция GETNEXTMODIFIED( ) начинает искать следующую измененную запись. Чтобы найти самую первую измененную запись в таблице или курсоре, задайте 0 в качестве nRecordNumber.
cTableAlias
Задает псевдоним таблицы или курсора, для которого функция GETNEXTMODIFIED( ) возвратит номер следующей модифицированной записи.
nWorkArea
Задает рабочую область таблицы или курсора, для которого функция GETNEXTMODIFIED( ) возвратит номер следующей модифицированной записи.
Если не задать ни псевдонима, ни рабочей области, GETNEXTMODIFIED( ) возвратит номер следующей модифицированной записи в выбранной в данный момент таблице или курсоре.
Результат:
Числовой.
Комментарии:
Если после указанной записи нет модифицированных записей, функция GETNEXTMODIFIED( ) возвращает 0. Запись считается модифицированной, если содержимое какого-либо из ее полей изменилось каким бы то ни было способом (даже если в итоге восстановилось первоначальное содержимое поля) или если изменился статус удаления записи.
Функция GETNEXTMODIFIED( ) может работать только с таблицами и курсорами, для которых разрешена буферизация таблицы. Включение буферизации таблицы осуществляется функцией CURSORSETPROP( ).
Пример:
* Cледующий пример демонстрирует, как можно с помощью функции * GETNEXTMODIFIED( ) определить, какие записи в таблице были изменены. * Значение MULTILOCKS устанавливается равным ON, что необходимо для * режима буферизации таблицы. Открывается таблица customer в базе * данных testdata, и функция CURSORSETPROP( ) устанавливает в качестве * режима буферизации мягкую буферизацию таблицы (5). * Выдается команда SKIP, перемещающая указатель записи ко второй * записи, и поле cust_id модифицируется с помощью команды REPLACE. * Функция GETNEXTMODIFIED(0) выводит на экран номер следующей * модифицированной записи (2, вторая запись), считая от начала таблицы. * Функция TABLEREVERT( ) возвращает таблицу в первоначальное * состояние, после чего вновь выдается функция GETNEXTMODIFIED(0), * которая отображает номер следующей модифицированной записи (0, то * есть ни одна запись не модифицирована). CLOSE DATABASES SET MULTILOCKS ON && Must be on for table buffering SET PATH TO (HOME( ) + 'samples\data\') && Sets path to database OPEN DATABASE testdata && Open testdata database USE Customer && Open customer table = CURSORSETPROP('Buffering', 5, 'customer') && Enable table buffering CLEAR SKIP && Move record pointer to the second record REPLACE cust_id WITH '***' && Changes field contents ? GETNEXTMODIFIED(0) && Returns 2, second record was modified = TABLEREVERT(.T.) && Discard all table changes ? GETNEXTMODIFIED(0) && Returns 0, no records modified