FetchXmlQuery Класс

Объект запроса Inert FetchXML. Http-запрос не выполняется до execute вызова или execute_pages не вызывается.

Получен через client.query.fetchxml(xml).

Конструктор

FetchXmlQuery(xml: str, entity_name: str, client: DataverseClient)

Параметры

Имя Описание
xml
Обязательно

Срезанная, хорошо сформированная строка FetchXML.

entity_name
Обязательно

Имя схемы сущности из <entity> элемента.

client
Обязательно

Родительский DataverseClientобъект.

Методы

execute

Выполните запрос FetchXML и возвратите все результаты в виде QueryResult.

Блокировка — извлекает все страницы и хранит каждую запись в памяти перед возвратом. Простой для небольших и средних результирующих наборов; используется execute_pages , если результирующий набор может быть большим или вы хотите обработать записи по мере их поступления.

Пример:


   rows = client.query.fetchxml(xml).execute()
   df = rows.to_dataframe()
execute_pages

Lazily дает по одному QueryResult на страницу HTTP.

Потоковая передача — каждая итерация запускает один HTTP-запрос и дает одну страницу. Предпочесть, execute когда:

  • Результирующий набор может быть большим, и вы не хотите одновременно все записи в памяти.

  • Вы хотите раннего выхода: остановите итерацию после того, как вы найдете необходимые действия, и оставшиеся круговые поездки HTTP пропускаются автоматически.

  • Вам нужны отчеты о ходе выполнения на странице или пакетные записи внизу.

Один выстрел — не итерации более одного раза.

Пример:


   for page in client.query.fetchxml(xml).execute_pages():
       process(page.to_dataframe())

execute

Выполните запрос FetchXML и возвратите все результаты в виде QueryResult.

Блокировка — извлекает все страницы и хранит каждую запись в памяти перед возвратом. Простой для небольших и средних результирующих наборов; используется execute_pages , если результирующий набор может быть большим или вы хотите обработать записи по мере их поступления.

Пример:


   rows = client.query.fetchxml(xml).execute()
   df = rows.to_dataframe()
execute() -> QueryResult

Возвращаемое значение

Тип Описание

Все соответствующие записи на всех страницах.

execute_pages

Lazily дает по одному QueryResult на страницу HTTP.

Потоковая передача — каждая итерация запускает один HTTP-запрос и дает одну страницу. Предпочесть, execute когда:

  • Результирующий набор может быть большим, и вы не хотите одновременно все записи в памяти.

  • Вы хотите раннего выхода: остановите итерацию после того, как вы найдете необходимые действия, и оставшиеся круговые поездки HTTP пропускаются автоматически.

  • Вам нужны отчеты о ходе выполнения на странице или пакетные записи внизу.

Один выстрел — не итерации более одного раза.

Пример:


   for page in client.query.fetchxml(xml).execute_pages():
       process(page.to_dataframe())
execute_pages() -> Iterator[QueryResult]

Возвращаемое значение

Тип Описание

Итератор объектов на страницу QueryResult .