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

ОТКРЫТЬ_ЗАПРОС

Функция ОТКРЫТЬ_ЗАПРОС

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

ОТКРЫТЬ_ЗАПРОС(Имя переменной)

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

Выполняет запрос, информация о котором содержится в переменной с именем Имя переменной, и сохраняет его открытым для дальнейшего считывания данных.

Данные, полученные при выполнении запроса, останутся доступными для считывания до наступления следующих случаев:

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

ВНИМАНИЕ! При создании запроса функцией СОЗДАТЬ_ЗАПРОС не происходит его выполнение! Выполнение запроса и подстановка значений его параметров происходят при попытке получить результаты запроса с помощью функций ПОЛУЧИТЬ_ЗНАЧЕНИЕ или ОТКРЫТЬ_ЗАПРОС.

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

Возвращает количество записей в запросе. Если в процессе выполнения функции произошла ошибка, функция возвращает значение 0. Читать данные, полученные в результате открытия такого запроса, нужно с помощью функции ТЕКУЩЕЕ_ЗНАЧЕНИЕ. Если результат запроса представляет собой набор из нескольких записей – перемещаться между записями можно с помощью функции СЛЕДУЮЩАЯ_СТРОКА.

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

ЕСТЬДАННЫЕ = ОТКРЫТЬ_ЗАПРОС(ПЕРЕМ);

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

См. также

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

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