Difference between revisions of "Query.Execute"
(No difference)
|
Revision as of 07:49, 13 November 2019
| Execute (Выполнение запроса) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
Функция выполняет запрос, заданный текстом в нужном режиме с необходимыми свойствами. Функция отдает таблицу результата запроса, если это необходимо. Если в процессе запроса будет найдена ошибка, функция вызовет исключение.
Синтаксис
Query.Execute(<Текст запроса (STRING)>,<Режим запроса (INT)>=1,<Выполнять агрегацию столбцов (INT)>=1,<Столбцы с объектами, загружаемыми в режиме заголовка (STRING)>=""):<Таблица результата запроса (TAB)>
Аргументы
<Текст запроса (STRING)>- Аргумент задает текст запроса для выполнения.<Режим запроса (INT)>- (необязательный аргумент) Задает режим выполнения запроса, возможны следующие значения:- 0 -- Не выполнять постобработку. Выполнение запроса останавливается после окончания первого этапа (см. Объект запрос базы данных), продолжить выполнение, если это необходимо, можно вызвав функцию Postprocess.
- 1 (по умолчанию) -- Выполнить постобработку в режиме обычного запроса.
- 2 -- Выполнить постобработку в линейном режиме
<Выполнять агрегацию столбцов (INT)>- (необязательный аргумент) Запрещает (0) или разрешает (1, по умолчанию) подсчет агрегации столбцов для обычного режима запроса в момент выполнения второго этапа запроса.<Столбцы с объектами, загружаемыми в режиме заголовка (STRING)>- (необязательный аргумент) Аргумент задает наименования столбцов через запятую, для которых загрузка объектов перед сортировкой объектов будет проходить в режиме только заголовков (экономия памяти), для всех объектов столбцов, которые не перечислены в данном аргументе, будет происходить полная загрузка. Режим загрузки объектов перед началом сортировки, во время выполнения второго этапа запроса, можно отменить, если во втором аргументе функции указан режим 0, либо с помощью опции постобработки DoNotMassLoadBeforeAggregation.
Возвращаемое значение
Возвращает таблицу значений -- результат выполнения запроса.
Примеры
Var З Export;
//Функция обхода группировок на основе рекурсии
Function ОбходГруппировок(Уровень)
If Уровень>З.GroupCount Then
Exit;
EndIf;
While З.Next(Уровень) Do
//Получить значение текущей группировки
зЭл:=З.Get(З.Groups(Уровень));
//Получить сальдо агрегации для текущей строки
зНачОст:=З.зНачОст;
зКонОст:=З.зКонОст;
зПриход:=З.зПриход;
зРасход:=З.зРасход;
//Вывод информации в печатную форму отчета
...
//Перейти к следующей группировке
ОбходГруппировок(Уровень+1);
EndDo;
EndFunction
//Выполним запрос с произвольным количеством группировок
ТЗ:=...
З:=Query.Create();
З.Execute(ТЗ);
//Вывести заголовок в печатную форму отчета
...
//Вывод строк группировок
ОбходГруппировок(1);
//Вывод строки итого, работает как линейных, так и для обычных запросов
зНачОст:=З.BegTotals("зНачОст");
зКонОст:=З.EndTotals("зКонОст");
зПриход:=З.Compute("зПриход");
зРасход:=З.Compute("зРасход");
...