Функция GETNEXTMODIFIED()

Возвращает номер следующей модифицированной записи в буферизованном курсоре.

Синтаксис:

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

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 26.01.2003