Перейти к основному содержимому

ТЕКУЩЕЕ_ЗНАЧЕНИЕ

Функция ТЕКУЩЕЕ_ЗНАЧЕНИЕ

Формат вызова

ТЕКУЩЕЕ_ЗНАЧЕНИЕ(Имя переменной, Имя поля, Null-значение)

Описание функции

Получает значение заданного поля из текущей записи запроса, информация о котором содержится в переменной Имя переменной.

Параметры

Имя переменной должно указывать на специальную переменную («переменную запроса»), созданную с помощью функции СОЗДАТЬ_ЗАПРОС. Текст запроса должен предусматривать возврат поля БД с именем Имя поля. Запрос должен быть предварительно открыт с помощью функции ОТКРЫТЬ_ЗАПРОС.

ВНИМАНИЕ! Параметры Имя поля и Null-значение имеют тип «строка», а значит, значения-константы этих параметров должны быть заключены в кавычки. Например, если бы в примере ниже вызов функции выглядел бы так:

РЕЗУЛЬТАТ = ТЕКУЩЕЕ_ЗНАЧЕНИЕ(ЗАПРОС,DCODE,'');

  • то функция пыталась бы вернуть не поле с именем DCODE, а поле, название которого записано в переменной DCODE скрипта. Чтобы получить значение поля с именем DCODE, нужно имя DCODE заключить в кавычки:

РЕЗУЛЬТАТ = ТЕКУЩЕЕ_ЗНАЧЕНИЕ(ЗАПРОС,'DCODE','');

Аналогично следует учитывать строковой тип параметра Null-значение, даже если требуется вернуть не строку, а число. Например, такой вызов функции:

РЕЗУЛЬТАТ = ТЕКУЩЕЕ_ЗНАЧЕНИЕ(ЗАПРОС,'DCODE',0);

  • вызовет ошибку. Числовое значение тоже следует представить в виде строки. Корректный вызов должен выглядеть так:

РЕЗУЛЬТАТ = ТЕКУЩЕЕ_ЗНАЧЕНИЕ(ЗАПРОС,'DCODE','0');

Возвращаемый результат

Функция возвращает значение поля БД с именем Имя поля из текущей записи открытого запроса. Если открытый запрос не содержит ни одной записи, или значением поля с именем Имя поля является Null («пустое значение»), то будет возвращено значение, заданное с помощью параметра Null-значение.

Если в процессе выполнения функции произошла ошибка, то функция возвращает значение 0, а в некоторых случаях – текст сообщения об ошибке.

Пример вызова

НАЗВАНИЕ = ТЕКУЩЕЕ_ЗНАЧЕНИЕ(ПЕРЕМ,'Имя','');

// Пример работы с запросами: УСТАНОВИТЬ_ТИП(КОНФ,INTEGER); УСТАНОВИТЬ_ТИП(ЮИД,INTEGER); КОНФ = 1; ЮИД = 38; ТЕКСТ = СТРОКА('select DCODE, DNAME from DOCTOR where STDTYPE=[КОНФ] and JID=[ЮИД]'); ЗАПРОС = СОЗДАТЬ_ЗАПРОС(ЗАПРОС,ТЕКСТ); ЕСТЬДАННЫЕ = ОТКРЫТЬ_ЗАПРОС(ПЕРЕМ); ЦИКЛ = ЕСТЬДАННЫЕ > 0; WHILE ЦИКЛ DO; BEGIN; ИМЯ = ТЕКУЩЕЕ_ЗНАЧЕНИЕ(ЗАПРОС,'DNAME',''); КОД = ТЕКУЩЕЕ_ЗНАЧЕНИЕ(ЗАПРОС,'DCODE',''); ПЕЧАТЬ(КОД, ' - ', ИМЯ); ЕСТЬДАННЫЕ = СЛЕДУЮЩАЯ_СТРОКА(ЗАПРОС); ЦИКЛ = ЕСТЬДАННЫЕ > 0; END;

См. также

УСТАНОВИТЬ_ТИП ПОЛУЧИТЬ_ЗНАЧЕНИЕ СОЗДАТЬ_ЗАПРОС ОТКРЫТЬ_ЗАПРОС СЛЕДУЮЩАЯ_СТРОКА

Была ли статья полезна?