Последовательно выполняет все запросы и возвращает массив результатов для каждого запроса из пакета. Результаты помещаются в массив в последовательности расположения запросов в тексте пакета. Результатом выполнения запроса на уничтожение временной таблицы является значение Неопределено, которое также помещается в массив результатов. Результатом выполнения запроса на создание временной таблицы будет содержимое временной таблицы.
Синтаксис
ВыполнитьПакетСПромежуточнымиДанными()Полное описание, параметры и ограничения
Запрос.ВыполнитьПакетСПромежуточнымиДанными (Query.ExecuteBatchWithIntermediateData)
Запрос (Query)
ВыполнитьПакетСПромежуточнымиДанными (ExecuteBatchWithIntermediateData)
Доступен, начиная с версии 8.3.8.
Синтаксис:
ВыполнитьПакетСПромежуточнымиДанными()
Возвращаемое значение:
Тип: Массив.
Описание:
Последовательно выполняет все запросы и возвращает массив результатов для каждого запроса из пакета. Результаты помещаются в массив в последовательности расположения запросов в тексте пакета.
Результатом выполнения запроса на уничтожение временной таблицы является значение Неопределено, которое также помещается в массив результатов.
Результатом выполнения запроса на создание временной таблицы будет содержимое временной таблицы.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Использование в версии:
Доступен, начиная с версии 8.3.8.
Методическая информация
Практические примеры
Сравнить пакет запросов с промежуточными данными и без них
В обычном пакете создание временной таблицы возвращает число помещённых строк; специальный метод возвращает сами строки.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Все три запроса образуют один пакет: создание, чтение, уничтожение только собственной ВТПакет.
Отдельный МенеджерВременныхТаблиц здесь не нужен: таблица используется и уничтожается внутри одного пакета.
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ""Книга"" КАК Название, 3 КАК Количество
|ПОМЕСТИТЬ ВТПакет;
|ВЫБРАТЬ Название, Количество ИЗ ВТПакет;
|УНИЧТОЖИТЬ ВТПакет";
ОбычныйПакет = Запрос.ВыполнитьПакет();
Сообщить(ОбычныйПакет.Количество() = 3);
ЧислоПомещённыхСтрок = ОбычныйПакет[0].Выгрузить();
Сообщить(ЧислоПомещённыхСтрок.Количество() = 1);
Сообщить(ЧислоПомещённыхСтрок[0][0] = 1);
Товары = ОбычныйПакет[1].Выгрузить();
Сообщить(Товары[0].Название = "Книга");
Сообщить(ОбычныйПакет[2] = Неопределено);
ПакетСДанными = Запрос.ВыполнитьПакетСПромежуточнымиДанными();
ПромежуточныеТовары = ПакетСДанными[0].Выгрузить();
Сообщить(ПромежуточныеТовары.Колонки.Найти("Название") <> Неопределено);
Сообщить(ПромежуточныеТовары[0].Название = "Книга");
Сообщить(ПромежуточныеТовары[0].Количество = 3);
Сообщить(ПакетСДанными[2] = Неопределено);Разбор по шагам
ВыполнитьПакет возвращает три позиции массива по порядку операторов, индексы 0–2.
Для ПОМЕСТИТЬ обычный метод даёт технический результат с числом строк, а не товарные колонки.
Для ВЫБРАТЬ обе версии дают обычный РезультатЗапроса; УНИЧТОЖИТЬ даёт Неопределено.
Повторно выполняем независимый пакет специальным методом и видим колонки и значения созданной таблицы на позиции 0.
Как проверить результат
Обычный пакет имеет длину 3; его первый результат сообщает одну помещённую строку.
Специальный пакет на позиции 0 содержит Название=Книга и Количество=3.
Обе позиции уничтожения равны Неопределено.
Ожидаемый результат
Различены технический счётчик ПОМЕСТИТЬ и промежуточные данные этого же оператора.
На что обратить внимание
Промежуточные данные большого пакета расходуют память; не включайте их без необходимости.
Перед Выгрузить проверяйте смысл позиции: Неопределено после УНИЧТОЖИТЬ не имеет такого метода.
Это не транзакция записи объектов информационной базы.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.