Работа с запросами во встроенном языке
Пример создания, выполнения запроса и обработки его результатов во встроенном языке может выглядеть следующим образом:
// Установить значения параметров запроса.
знч Возраст = 40
// Задать текст запроса.
знч Запрос = Запрос{ВЫБРАТЬ
Сотрудники.Ссылка КАК Ссылка,
Сотрудники.ФИО КАК ФИО
ИЗ
Сотрудники КАК Сотрудники
ГДЕ
Сотрудники.Возраст < %Возраст}
// Обойти результат запроса и обработать его.
для СтрокаРезультата из Запрос.Выполнить()
пер СотрудникСсылка = СтрокаРезультата.Ссылка
пер СотрудникФИО = СтрокаРезультата.ФИО
;
Литерал или произвольный запрос
Для создания запроса можно использовать два способа:
- Литерал запроса (рекомендуемый),
- Произвольный запрос.
Использование литерала запроса является предпочтительным, потому что в этом случае контроль типов колонок результата запроса выполняется на этапе компиляции, что сокращает количество потенциальных ошибок.
Однако есть случаи, когда литерал не подходит и нужно использовать произвольный запрос. Например, если текст запроса формируется динамически, сложным алгоритмом. В этом случае компилятор ничего не знает о тексте запроса. Для него это просто строка, причем какая именно строка будет использована для доступа к базе данных, станет известно только во время работы приложения. По этой причине на этапе компиляции тип колонок запроса определить невозможно и все ошибки, связанные с этим, будут обнаружены только во время работы.
В первом и во втором случае используются разные типы встроенного языка и поэтому результаты запроса нужно обрабатывать разным образом.