ОТКРЫТЬ_ЗАПРОС
Функция ОТКРЫТЬ_ЗАПРОС
Формат вызова
ОТКРЫТЬ_ЗАПРОС(Имя переменной)
Описание функции
Выполняет запрос, информация о котором содержится в переменной с именем Имя переменной, и сохраняет его открытым для дальнейшего считывания данных.
Данные, полученные при выполнении запроса, останутся доступными для считывания до наступления следующих случаев:
- Когда будет вызвана функция СОЗДАТЬ_ЗАПРОС с тем же именем Имя переменной (т.е. будет создан новый запрос)
- Когда будет вызвана функция ОТКРЫТЬ_ЗАПРОС для запроса с тем же именем Имя переменной (т.е. произойдет обновление данных)
- Когда текущий скрипт завершит свою работу
ВНИМАНИЕ! При создании запроса функцией СОЗДАТЬ_ЗАПРОС не происходит его выполнение! Выполнение запроса и подстановка значений его параметров происходят при попытке получить результаты запроса с помощью функций ПОЛУЧИТЬ_ЗНАЧЕНИЕ или ОТКРЫТЬ_ЗАПРОС.
Возвращаемый результат
Возвращает количество записей в запросе. Если в процессе выполнения функции произошла ошибка, функция возвращает значение 0. Читать данные, полученные в результате открытия такого запроса, нужно с помощью функции ТЕКУЩЕЕ_ЗНАЧЕНИЕ. Если результат запроса представляет собой набор из нескольких записей – перемещаться между записями можно с помощью функции СЛЕДУЮЩАЯ_СТРОКА.
Пример вызова
ЕСТЬДАННЫЕ = ОТКРЫТЬ_ЗАПРОС(ПЕРЕМ);
// Пример работы с запросами: УСТАНОВИТЬ_ТИП(КОНФ,INTEGER); УСТАНОВИТЬ_ТИП(ЮИД,INTEGER); КОНФ = 1; ЮИД = 38; ТЕКСТ = СТРОКА('select DCODE, DNAME from DOCTOR where STDTYPE=[КОНФ] and JID=[ЮИД]'); ЗАПРОС = СОЗДАТЬ_ЗАПРОС(ЗАПРОС,ТЕКСТ); ЕСТЬДАННЫЕ = ОТКРЫТЬ_ЗАПРОС(ПЕРЕМ); ЦИКЛ = ЕСТЬДАННЫЕ > 0; WHILE ЦИКЛ DO; BEGIN; ИМЯ = ТЕКУЩЕЕ_ЗНАЧЕНИЕ(ЗАПРОС,'DNAME',''); КОД = ТЕКУЩЕЕ_ЗНАЧЕНИЕ(ЗАПРОС,'DCODE',''); ПЕЧАТЬ(КОД, ' - ', ИМЯ); ЕСТЬДАННЫЕ = СЛЕДУЮЩАЯ_СТРОКА(ЗАПРОС); ЦИКЛ = ЕСТЬДАННЫЕ > 0; END;
См. также
УСТАНОВИТЬ_ТИП ПОЛУЧИТЬ_ЗНАЧЕНИЕ СОЗДАТЬ_ЗАПРОС ТЕКУЩЕЕ_ЗНАЧЕНИЕ СЛЕДУЮЩАЯ_СТРОКА