Функция CURVAL()

Возвращает значение поля непосредственно с диска или из удаленного источника.

Синтаксис:

CURVAL(cExpression [, cTableAlias | nWorkArea])

Параметры:
cExpression
Задает выражение, значение которого функция CURVAL( ) возвращает с диска или из удаленного источника. cExpression обычно является полем или списком полей таблицы или удаленного источника.
cTableAlias
Задает псевдоним таблицы, для которой с диска или из удаленного источника возвращается значение поля.
nWorkArea
Задает рабочую область таблицы, для которой с диска или из удаленного источника возвращается значение поля.

Результат:
Типа Character, Currency, Date, DateTime, Double, Float, Logical, Numeric или Memo.

Комментарии:
Сравнивая значения, возвращаемые функциями CURVAL( ) и OLDVAL( ), можно определить, не изменил ли какой-нибудь другой пользователь сети значение поля, когда оно редактировалось. Функции CURVAL( ) и OLDVAL( ) могут возвратить разные значения только в том случае, если включена мягкая буферизация строк или таблиц. Для включения мягкой буферизации строк или таблиц следует использовать функцию CURSORSETPROP( ).
Функция CURVAL( ) возвращает значение поля для текущей записи, а тип данных возвращаемого значения определяется выражением, заданным с помощью cExpression.
Если функция CURVAL( ) выдается без необязательных аргументов cTableAlias или nWorkArea, возвращается значение поля для таблицы или курсора, открытых в выбранной в данный момент рабочей области.

Пример:

* В данном примере создается свободная таблица mytable и значение
* "One" помещается в поле cDigit. Мягкая буферизация становится
* возможной после команды SET MULTILOCKS ON и вызова функции
* CURSORSETPROP( ).
* Затем значение "Two" помещается в поле cDigit, функции CURVAL( ) и
* OLDVAL( ) используются для показа первоначальных значений поля cDigit.
* Затем с помощью функции TABLEUPDATE( ) изменения вносятся в
* таблицу; CURVAL( ) и OLDVAL( ) вызываются для показа новых значений
* поля cDigit. Поскольку данный пример рассчитан на одного пользователя,
* функции CURVAL( ) и OLDVAL( ) возвращают одинаковые значения.

CREATE TABLE mytable FREE (cDigit C(10)) 
INSERT INTO mytable (cDigit) VALUES ("One")  && Original value
SET MULTILOCKS ON  && Must be on for optimistic table buffering
= CURSORSETPROP('Buffering',5)		&& Optimistic table buttering on
REPLACE cDigit WITH "Two"  && New value

CLEAR
? 'Current value: ' + CURVAL('cDigit', 'mytable')
? 'Old value: ' + OLDVAL('cDigit', 'mytable')
= TABLEUPDATE(.T.)  && Commits all changes made to table
? 'Table changes committed'
? 'New current value: ' + CURVAL('cDigit', 'mytable')
? 'New old value: ' + OLDVAL('cDigit', 'mytable')

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