Difference between revisions of "Query.Execute"
m (1 revision imported) |
|
(No difference)
|
Latest revision as of 07:52, 7 February 2021
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("зРасход"); ...